7.nacos服务分级存储模型
一、一个服务可以有多个实例,例如我们的user-service,可以有:
- 127.0.0.1:8081
- 127.0.0.1:8082
- 127.0.0.1:8083
假如这些实例分布于全国各地的不同机房,例如:
- 127.0.0.1:8081,在上海机房
- 127.0.0.1:8082,在上海机房
- 127.0.0.1:8083,在杭州机房
Nacos就将同一机房内的实例 划分为一个集群。
也就是说,user-service是服务,一个服务可以包含多个集群,如杭州、上海,每个集群下可以有多个实例,形成分级模型,如图:
2.微服务互相访问时,应该尽可能访问同集群实例,因为本地访问速度更快。当本集群内不可用时,才访问其它集群。例如:
杭州机房内的order-service应该优先访问同机房的user-service。
3.给user-service配置集群
3.1修改user-service的application.yml文件,添加集群配置:
3.2重启两个user-service实例后,我们可以在nacos控制台看到下面结果:
3.3再启动一个user-service实例集群名称改为QZ:
3.4点击nacos控制台查看集群属性可以看到如下效果:
二、.同集群优先的负载均衡
默认的ZoneAvoidanceRule
并不能实现根据同集群优先来实现负载均衡。
因此Nacos中提供了一个NacosRule
的实现,可以优先从同集群中挑选实例。
1.给order-service配置集群信息
修改order-service的application.yml文件,添加集群配置:
2.修改负载均衡规则
修改order-service的application.yml文件,修改负载均衡规则: