1.配置叢集
修改user-service的application.yml檔案,添加叢集配置:
spring:
cloud:
nacos:
server-addr: localhost:8848 # nacos伺服器位址
discovery:
cluster-name: SH # 叢集名稱
再次複制一個user-service啟動配置,添加屬性:
-Dserver.port=8083 -Dspring.cloud.nacos.discovery.cluster-name=HZ
啟動三個服務後再次檢視nacos控制台userservice服務詳情:
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsISPrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdsATOfd3bkFGazxCMx8VesATMfhHLlN3XnxCMwEzX0xiRGZkRGZ0Xy9GbvNGLpZTY1EmMZVDUSFTU4VFRR9Fd4VGdsYTMfVmepNHLrJXYtJXZ0F2dvwVZnFWbp1zczV2YvJHctM3cv1Ce-cmbw5CMxcDOyITMkVWYhZGMyUzNxYzX2QTMwcTM0IzLcBTMxIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjL0M3Lc9CX6MHc0RHaiojIsJye.png)
2.同叢集優先的負載均衡
預設的
ZoneAvoidanceRule
并不能實作根據同叢集優先來實作負載均衡。
是以Nacos中提供了一個
NacosRule
的實作,可以優先從同叢集中挑選執行個體。
1)給order-service配置叢集資訊
修改order-service的application.yml檔案,添加叢集配置:
spring:
cloud:
nacos:
server-addr: localhost:8848
discovery:
cluster-name: HZ # 叢集名稱
2)修改負載均衡規則
修改order-service的application.yml檔案,修改負載均衡規則:
userservice: #要配置的微服務名稱
ribbon:
NFLoadBalancerRuleClassName: com.alibaba.cloud.nacos.ribbon.NacosRule # 負載均衡規則(優先通路同一叢集下的微服務,是随機通路,而不是輪詢)
3.權重配置
Nacos提供了權重配置來控制通路頻率,權重越大則通路頻率越高。
在nacos控制台,找到user-service的執行個體清單,點選編輯,即可修改權重(0-1):