Dubbo服務限流

2021-09-25 20:00:14 字數 1986 閱讀 8039

為了防止某個消費者的qps或是所有消費者的qps總和突然飆公升而導致的重要服務的失效,系統可以對訪問流量進行控制,這種對集群的保護措施稱為服務限流。

dubbo中能夠實現服務限流的方式較多,可以劃分為兩類:直接限流間接限流

該屬性僅能設定在提供者端。可以設定為介面級別,也可以設定為方法級別。限制的是服務(方法)併發執行數量。

類級別,伺服器端併發執行(或占用執行緒池執行緒數)不能超過 10 個

方法級別,伺服器端併發執行(或占用執行緒池執行緒數)不能超過 10 個

該屬性僅可設定在提供者端的與。用於對指定協議的連線數量進行限制

或該限流方式與前兩種不同的是,其可以設定在提供者端,也可以設定在消費者端。可以設定為介面級別,也可以設定為方法級別

a、提供者端限流

根據消費者與提供者間建立的連線型別的不同,其意義也不同

類級別

方法級別

b、消費者端限流根據消費者與提供者間建立的連線型別的不同,其意義也不同:

類級別

方法級別

可以設定在提供者端,也可以設定在消費者端。限定連線的個數。對於短連線,該屬性效果與actives相同。但對於長連線,其限制的是長連線的個數。

一般情況下,會使connectons與actives聯用,讓connections限制長連線個數,讓actives限制乙個長連線中可以處理的請求個數。聯用前提:使用預設的dubbo服務暴露協議

a、提供者端限流

類級別

方法級別

b、消費者端限流

類級別

方法級別

(1) 延遲連線 – 僅消費者端

僅可設定在消費者端,且不能設定為方法級別。僅作用於dubbo服務暴露協議。

將長連線的建立推遲到消費者真正呼叫提供者時。

可以減少長連線的數量

僅能設定在消費者端,其可以設定為介面級別,也可以設定為方法級別。僅作用於dubbo服務暴露協議

其會使客戶端盡量向同乙個提供者發起呼叫,除非該提供者掛了,其會連線另一台。只要啟用了粘連連線,其就會自動啟用延遲連線

其限制的是流向,而非流量

類級別

方法級別

可以設定在消費者端,亦可設定在提供者端;可以設定在介面級別,亦可設定在方法級別。其限制的是流向,而非流量

官方介紹

dubbo服務降級限流

解決高併發的三把利器 降級 限流 快取。dubbo的服務降級,採用mock機制。其具有兩種降級處理方式 mock null降級處理,與mock class降級處理 dubbo referenceid demoservice mock return null inte ce com.dubbo ref...

Dubbo筆記12 服務限流

該屬性僅能設定在提供者端。可以設定為介面級別,也可以設定為方法級別。限制的是服務 方法 併發執行數量。該屬性僅可設定在提供者端的dubbo protocol 內。用於對指定協議的連線數量進行限制 該限流方式可以設定在提供者端,也可以設定在消費者端。可以設定為介面級別,也可以設定為方法級別。a 提供者...

dubbo熔斷限流

常見的限流演算法有 令牌桶 漏桶。計數器也可以進行粗暴限流實現。dubbo呼叫模型 連線呼叫圖 呼叫時關鍵引數影響 引數名 作用範圍 預設值說明 備註actives consumer 0每服務消費者每服務每方法最大併發呼叫數 0表示不限制 connections consumer 對每個提供者的最大...