dubbo服務降級限流

2021-10-07 04:42:13 字數 3158 閱讀 9775

解決高併發的三把利器:降級、限流、快取。

dubbo的服務降級,採用mock機制。其具有兩種降級處理方式:mock null降級處理,與mock class降級處理

<

dubbo:referenceid=

"demoservice"

mock

="return null"

inte***ce

="com..."

/>

<

dubbo:referenceid=

"demoservice"

mock

="true"

inte***ce

="com..."

/>

//1、mock class demoservicemock,即介面類名稱+mock

//2、和介面必須在同乙個包裡,即相同目錄下

public

class

demoservicemock

implements

demoservice

@override

public

void

testvoid()

}

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

dubbo中可以實現現有的方案比較多,可以劃分為兩類:直接限流和間接限流

直接限流:通過對連線資料進行限制來到底限流的目的。(官方方案)

間限限流:通過一些非連線數量設定來到的限流的目的。

改屬性僅能設定在提供者端。可以設定為介面或方法級別。

限制的是介面(或方法)併發執行數量。

<

dubbo:service

inte***ce

="com...demoservice"

ref="demoservice"

executes

="10"

/>

該屬性僅可設定在提供者端 與

用於對指定協議的連線數量進行限制

<

dubbo:provide

protocol

="dubbo"

accepts

="10"

/>

<

dubbo:protocol

name

="dubbo"

port

="20880"

accepts

="10"

/>

可以設定在提供者端或消費者端。

可以設定成介面級別和方法級別。

<

dubbo:service

inte***ce

="com...demoservice"

ref="demoservice"

actives

="10"

/>

<

dubbo:referenceid=

"demoservice"

inte***ce

="com..."

actives

="10"

/>

可以設定在提供者端或消費者端,限定連線的個數。

可以設定成介面級別和方法級別。

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

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

<

dubbo:referenceid=

"demoservice"

inte***ce

="com..."

lazy

="true"

/>

<

dubbo:consumer

lazy

="true"

/>

僅可設定下消費者端,可以設定在介面和方法級別上。僅作用於dubbo服務暴漏協議。

其會使客戶端盡量向同乙個提供者發起呼叫,除非該提供者掛了,其後連線另乙個。

只要啟用了粘連連線,其會自動啟用延遲連線

其限制的是流向,而不是流量。

<

dubbo:referenceid=

"demoservice"

inte***ce

="com..."

sticky

="true"

/>

可以設定在提供者端或消費者端。

可以設定成介面級別和方法級別。

其限制的是流向,而不是流量。

<

dubbo:service

inte***ce

="com...demoservice"

ref="demoservice"

loadbalance

="leastactive"

/>

dubbo 熔斷,限流,降級

1 寫在前面 1.1 名詞解釋 consumer表示服務呼叫方 provider標示服務提供方,dubbo裡面一般就這麼講。下面的a呼叫b服務,一般是泛指呼叫b服務裡面的乙個介面。1.2 拓撲圖 大寫字母表示不同的服務,後面的序號表示同乙個服務部署在不同機器的例項。2 從微觀角度思考 2.1 超時 ...

dubbo 熔斷,限流,降級

1.1 名詞解釋 consumer表示服務呼叫方 provider標示服務提供方,dubbo裡面一般就這麼講。下面的a呼叫b服務,一般是泛指呼叫b服務裡面的乙個介面。1.2 拓撲圖 大寫字母表示不同的服務,後面的序號表示同乙個服務部署在不同機器的例項。2.1 超時 timeout 在介面呼叫過程中,...

dubbo 服務降級

經歷過12306搶票的人應該經常會遇到這個問題 在搶票高峰的時候,明明票還有,但是查詢出來的列表卻是為空的 如果沒票列表也應該會呈現 等高峰過後再查詢,列表又恢復正常。個人猜測應該是查詢過程中出現了問題,要麼超時,要麼網路問題導致查詢失敗採用的服務降級處理。所以,最終呈現給使用者的並不是內部系統出錯...