一、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是服务,一个服务可以包含多个集群,如杭州、上海,每个集群下可以有多个实例,形成分级模型,如图:
1、一级为服务,例如提供用户服务的userservice
2、二级为集群,例如:上海机房、杭州机房
3、三级为实例,例如:上海机房中某台部署了userservice的机器。
1、既然提供相同服务的所有实例共同构成了一级存储模型:服务,那服务下实例又是如何划分集群的呢?
通过Application配置文件加以控制。
spring:
cloud:
nacos:
discovery:
cluster-name: HZ # 配置集群名称,即机房的位置,例如配置杭州机房缩写首字母
2、划分集群后,如何查看?
在nacos控制台即可看到变化(服务管理-服务列表-详情)。
借助IDE增加集群下服务,操作方式如下
1、选择服务,右键,然后选择如图所示
2、根据需要修改name名称
3、配置必要参数,这里配置了端口号及集群名称
-Dserver.port=8083
-Dspring.cloud.nacos.discovery.cluster-name=HZ
4、找到刚刚创建的服务名称,启动
3、nacos控制台查看,HZ集群中增加该服务
二、配置NacosRule负载均衡
userservice: # 生产者名称
ribbon:
NFLoadBalancerRuleClassName: com.alibaba.cloud.nacos.ribbon.NacosRule # 负载均衡规则
NacosRule负载均衡规则如下:
1、优先本地集群访问(集群内实例随机访问)
2、本地集群无可用服务时,访问其他集群,并打印跨集群访问警告进行提醒