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,放入部分用户进行测试,再逐步放开。