dubbo降級服務
dubbo開發中,通常是微服務架構,那麼在使用過程中可能會遇到多種問題:
1)多個服務之間可能由於服務沒有啟動或者網路不通,呼叫中會出現遠端呼叫失敗;
2) 服務請求過大,需要停止部分服務以保證核心業務的正常執行;
以上兩個問題可以使用dubbo的服務降級來實現;
即:在服務宕掉或者併發數太高導致的rpcexception異常時,進行友好的處理或者提示,而不是內部報錯導致系統不可用。
解決方法:
dubbo提供了mock配置,可以很好的實現dubbo服務降級,
mock主要有兩種配置方式,
第1種
在遠端呼叫異常時,服務端直接返回乙個固定的字串(也就是寫死的字串)
具體配置:
在服務呼叫方配置mock引數:
說明:配置了mock引數之後,假設在呼叫服務的時候,遠端服務沒有啟動,或者各種網路異常了,那遠端服務會把這個mock配置的值返回,也就是會返回123456...
通過這種方式就可以避免了因為服務呼叫不了而出現異常錯誤而帶來的程式不可用(起碼是有值返回的,然後可以根據值進行業務邏輯處理判斷等等)。
注:除了配置mock引數之外,其它地方不用變。
第2種
在遠端呼叫異常時,服務端根據自定義mock業務處理類進行返回)
具體配置:
在服務呼叫方配置mock引數:
說明:配置了mock引數之後,假設在呼叫服務的時候,遠端服務沒有啟動,或者各種網路異常了,那遠端服務會去尋找自定義的mock業務處理類進行業務處理。
因此還需配置乙個自定義mock業務處理類
在介面服務***xservice的目錄下建立相應的mock業務處理類,同時實現業務介面***xservice(),介面名要注意命名規範:介面名+mock字尾,mock實現需要保證有無參的構造方法。
public class ***xservicemock implements ***xservice
}配置完成後,此時如果呼叫失敗會呼叫自定義的mock業務實現。
注:除了以上兩處之外,其它地方不用變。
管理介面手動配置:
以上的配置其實除了在**中配置之外,還可以在dubb-adming管理介面直接手動配置:
分別是遮蔽和容錯:
遮蔽:force.mock(即:遮蔽請求,直接返回某個值,如上面的字串,mock="return 123456..."
);容錯:fail.mock(即:允許請求,在請求失敗的時候,再返回某個值,如:mock="fail:return 123456..."
);
Dubbo服務降級設定
原文 dubbo降級服務 dubbo開發中,通常是微服務架構,那麼在使用過程中可能會遇到多種問題 1 多個服務之間可能由於服務沒有啟動或者網路不通,呼叫中會出現遠端呼叫失敗 2 服務請求過大,需要停止部分服務以保證核心業務的正常執行 以上兩個問題可以使用dubbo的服務降級來實現 即 在服務宕掉或者...
dubbo 服務降級
經歷過12306搶票的人應該經常會遇到這個問題 在搶票高峰的時候,明明票還有,但是查詢出來的列表卻是為空的 如果沒票列表也應該會呈現 等高峰過後再查詢,列表又恢復正常。個人猜測應該是查詢過程中出現了問題,要麼超時,要麼網路問題導致查詢失敗採用的服務降級處理。所以,最終呈現給使用者的並不是內部系統出錯...
Dubbo服務降級
當伺服器壓力劇增的情況下,根據實際業務情況及流量,對一些服務和頁面有策略的不處理或簡單處理,從而釋放伺服器資源以保證核心業務正常運作或高效運作。可以通過服務降級功能臨時遮蔽某個出錯的非關鍵服務並定義降級後的返回策略。dubbo支援兩種服務降級策略 1 mock force return null 表...