Nacos: Dynamic Naming and Configuration Service
Nacos根據集群負載均衡
優先選擇同集群的服務實例列表,本地集群找不到提供者才會去其他集群尋找,並且會本地警報,確定了可用實例后,再采用隨機負載均衡選實例。
1.修改服務調用者的yml,設置集群
2.設置IRule為NacosRule,這個規則會優先尋找與自己同集群的服務,本集群內會隨機查詢
userservice:
ribbon:
NFLoadBalancerRuleClassName: com.alibaba.cloud.nacos.ribbon.NacosRule
3.注意將user-service的權重都設置為1
跨集群調用時候會顯示
A cross-cluster call occurs,name = userservice, clusterName = HZ, instance = [Instance{instanceId='192.168.239.1#8082#SH#DEFAULT_GROUP@@userservice', ip='192.168.239.1', port=8082, weight=1.0, healthy=true, enabled=true, ephemeral=true, clusterName='SH', serviceName='DEFAULT_GROUP@@userservice', metadata={preserved.register.source=SPRING_CLOUD}}]
Nacos根據權重負載均衡
部署場景: 服務器設備性能有差異,部分實例在的機器性能較好,另一些較差,性能好的承擔更多的用戶請求。
權重為0時候不會被選用。
在nacos網頁中可以修改權重。先將一個實例的權重設置為0,等沒有用戶的時候,在停機升級,等升級完成,在將配置設置為0。0001,放入部分用戶進行測試,再逐步放開。