[學習微服務-第8天] ServiceComb內置負載均衡組件handler-loadbalance

在上兩篇 [微服務]ServiceComb + SpringCloud Ribbon:使用篇 和 [微服務]ServiceComb + SpringCloud Ribbon:源碼解讀篇 中介紹了負載均衡的概念和ServiceComb結合SpringCloud Ribbon的使用, 本篇將介紹ServiceComb內置的負載均衡組件handler-loadbalancehtml

 

本文參考於官方手冊:java

https://docs.servicecomb.io/java-chassis/zh_CN/references-handlers/loadbalance.htmlgit

簡介github

ServiceComb提供了很是強大的負載均衡能力。它的核心包括兩部分,第一部分是DiscoveryTree,經過將微服務實例根據接口兼容性、數據中心、實例狀態等分組,DiscoveryFilter是其主要組成部分;第二部分是基於Ribbon的負載均衡方案,支持隨機、順序、基於響應時間的權值等多種負載均衡路由策略IRule,以及能夠支持Invocation狀態的ServerListFilterExt。spring

代碼示例apache

如下代碼請參考官方示例:微信

https://github.com/apache/servicecomb-java-chassis/tree/master/samples/springmvc-samplemvc

注意該示例中並未添加劇試策略,讀者可自行添加驗證。負載均衡

 

1. 啓動負載均衡微服務

在配置文件microservice.yaml中加入如下配置

 

注意Consumer是首字母大寫

在項目的pom文件中加入如下依賴提供負載均衡支持

 

2. 配置負載均衡策略

開發者還能夠針對不一樣的微服務配置不同的策略,只須要給配置項增長服務名,例如:

其中myservice爲微服務名

 

3. 設置重試策略

負載均衡模塊還支持配置失敗重試的策略。默認未啓用重試。開啓只需加以下配置↓↓↓

•retryOnNext : 表示失敗之後,根據負載均衡策略,從新選擇一個實例重試(可能選擇到同一個實例)。

•retryOnSame : 表示仍然使用上次失敗的實例進行重試。

 

4. 代碼調用

支持Restful和Rpc調用

對於Restful調用的url形式以下:

cse://微服務名/資源路徑?參數

自定義

ServiceComb的負載均衡模塊提供了強大的擴展能力,包括DiscoveryFilter、ServerListFilterExt、ExtensionsFactory(擴展IRule,RetryHandler等)。loadbalance模塊自己包含了每個擴展的實現,這裏不詳細描述如何擴展。

開發者可參考官方手冊:

https://docs.servicecomb.io/java-chassis/zh_CN/references-handlers/loadbalance.html

 

文末小結

本文向社區讀者從使用角度闡述了ServiceComb的內置負載均衡模塊。

咱們也很是歡迎愛好者們向社區提問和貢獻代碼。

下章咱們將介紹服務中心SeviceCenter的使用。

若是在閱讀代碼時有任何疑問想交流,歡迎掃碼加入進微信羣。

期待志同道合的朋友們加入

ServiceComb的大門爲大家敞開~

用心作開源,不忘初衷

相關文章
相關標籤/搜索