学习地址:https://www.bilibili.com/video/BV1LQ4y127n4?p=23
1、 在 cloud-demo 父工程中添加 spring-cloud-alilbaba 的管理依赖:
2、 注释掉 order-service 和 user-service 中原有的 eureka依赖。
3、 添加 Nacos 的客户端依赖:
4、 注释掉 user-service 和 order-service 的 application.yml 文件中的 eureka地址。
5、 添加 Nacos 地址:
服务集群属性
1、修改 application.yml 配置文件,添加如下内容:
- Nacos服务分级存储模型
一级是服务,例如 userservice
二级是集群,例如杭州或上海
三级是实例,例如杭州机房的某台部署了 userservice 的服务器 - 如何设置实例的集群属性
修改 application.yml 文件,添加:spring.cloud.nacos.discovery.cluster-name 属性即可。
1、修改 order-service 中的 application.yml 配置文件:设置集群为 HZ:
2、在 order-service 中设置负载均衡 的 IRule 为 NacosRule,这个规则会优先寻找与自己相同集群的服务:
3、注意将 user-service 的权重都设为 1(权重范围为 0.0 ~ 1)
NacosRule负载均衡策略总结:
- 优先选择同集群服务实例列表
- 本地集群找不到提供者,才去其它集群寻找,并且会报警告
- 确定了可用实例列表后,再采用 随机负载均衡 挑选实例
实际部署中会出现这样的场景:服务器设备性能有差异,部分实例所在机器性能较好,另一些较差,我们希望性能好的机器承担更多的用户请求。
Nacos提供了权重配置来控制访问频率,权重越大则访问频率越高。
实例的权重控制:
- Nacos 控制台可以设置实例的权重值,0 ~ 1之间
- 同集群内的多个实例,权重越高被访问的频率越高
- 权重设置为 0 则完全不会被访问