現在負載均衡是通用的解決分壓的技術方案,實作方式一般分為服務端或者用戶端,服務端大部分是使用中間件實作,spring cloud ribbon 是一個用戶端負載均衡元件。跟spring cloud eureka、spring cloud feign 搭配的很默契,下一篇我們再講解spring cloud feign。
(一) 版本說明
a) Spring boot 2.0.6.RELEASE
b) Spring cloud Finchley.SR2
c) Java version 1.8
d) Spring-cloud-starter-netflix-ribbon 2.0.2.RELEASE
(二) 項目配置
1. 服務端項目配置
a) 服務端主要是提供服務功能,這裡是把目前的端口傳回給調用者,同時把自己注冊到服務中心,調用者通過服務中心調用。
b) POM設定
c) application.yml配置檔案
d) 主要參數說明
i. eureka.instance.prefer-ip-address 使用IP顯示注冊資訊
ii. eureka.instance.ip-address 執行個體IP位址,
iii. eureka.instance.instance-id 自定義執行個體id,服務之間調用就是使用該配置,多個執行個體必須保證唯一性
iv. eureka.client.service-url.defaultZone 注冊中心位址
e) 服務提供者API
2. 消費端項目配置
a) POM設定
i. 這裡把服務消費端也注冊到了服務治理中心,消費者同時也是其它服務的提供者。
b) application.yml配置檔案
c) 服務消費者API
3. 重點提示
a) 為了示範負載,3個服務提供者必須設定3個不同的端口,并且其它相同,不然會被認為是不同的服務,起不到均衡的作用。
b) LoadBalanced 該注解實作了負載均衡功能,預設政策是輪詢
4. 項目運作
a) 運作服務提供者
i. 運作3個服務者執行個體後,會在服務中心看到如下效果,服務提供者已經注冊成功

b) 運作服務消費者
i. 運作消費者,如下圖所示
c) 打開PostMan,輸入消費者位址,多重新整理幾次,即可看到負載效果
這樣spring cloud ribbon負載元件就介紹完了,如果在開發中遇到問題,也可以留言共同探讨共同進步。