[學習微服務-第6天] 負載均衡之ServiceComb + SpringCloud Ribbon--帶圖

在微服務架構中,客戶端負載均衡是指負載均衡器作爲客戶端軟件的一部分,客戶端得到可用的服務實例列表然後按照特定的負載均衡策略,分發請求到不同的服務。

 

ServiceComb內置了客戶端負載均衡組件,開發者可以非常簡單的使用。具體可參考:

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

 

本文將介紹ServiceComb與SpringCloud的Ribbon負載均衡組件協同工作,以構建微服務應用。ServiceComb已適配對應的接口和配置,用戶用極簡單的方法配置後即可使微服務應用具備負載均衡的能力。

 

示例

以下通過一個服務提供者provider-service和消費者consumer-service作爲demo演示。

provider-service會啓動3個微服務實例,消費者端consumer-service使用Ribbon負載均衡調用proveder-service服務的接口。其中consumer-service在調用provider-service提供的接口時會打印出真實調用的URL ↓↓↓

完整示例地址:

https://github.com/lisenwork/servicecomb-demo/tree/master/servicecomb-ribbon 

 

預置條件:  示例應先安裝啓動服務與註冊中心ServiceCenter,詳細步驟請參考官網↓↓↓

http://servicecomb.apache.org/cn/users/setup-environment/#%E8%BF%90%E8%A1%8Cservice-center

 

開發服務消費者comsumer-service

只需三步即可開發擁有負載均衡能力的微服務

步驟如下:↓↓↓

01添加依賴

新建pom文件,引入如下依賴。

完整pom文件內容請參考↓↓↓

https://github.com/lisenwork/servicecomb-demo/blob/master/servicecomb-ribbon/consumer-service/pom.xml     

 

02配置 

在resources目錄下新建ServiceComb配置文件microservice.yaml。配置微服務信息↓↓↓

03項目入口

新建啓動類ConsumerApplication.java。如下圖,啓動類裏同時實例化一個RestTemplate對象。該對象用於後面的服務間接口調用。

新建ConsumerController.java。在該類的consumer方法裏使用Ribbon的API動態獲取服務實例,並打印出被選中的實例的真實IP地址和端口。最後調用服務實例的接口,獲取結果並返回。

04啓動

項目根目錄下執行命令 mvn spring-boot:run

 

開發服務提供者provider-service

 

01添加依賴

新建pom文件,引入如下依賴。

完整pom文件內容請參考↓↓↓

https://github.com/lisenwork/servicecomb-demo/blob/master/servicecomb-ribbon/provider-service/pom.xml 

 

02配置 

在src/main/resources目錄下新建microservice.yaml

03項目入口

新建啓動類ProviderApplication.java

新建ProviderController.java。只向外提供/provider接口

04啓動 

服務提供者要啓動3個微服務實例。

打開microservice.yaml文件,分別修改微服務監聽端口爲8888,8889,8890,在項目根目錄下執行3次命令 mvn spring-boot:run

 

演示

瀏覽器訪問http://localhost:7777/consumer,重複刷新一定次數,觀察控制檯,會發現服務消費者會輪詢調用服務提供者的三個實例。

小結
本文向社區讀者從讀者角度闡述了ServiceComb是如何支持SpringCloud Ribbon的。

我們也非常歡迎愛好者們向社區提問和貢獻代碼。

下章我們將介紹ServiceComb+SpringCloud Ribbon源碼篇。

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

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

ServiceComb的大門爲你們敞開~

用心做開源,不忘初衷
————————————————
原文鏈接:https://blog.csdn.net/ServiceComb/article/details/87101435

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章