当前位置:网站首页>Nacos集群分区
Nacos集群分区
2022-07-30 03:25:00 【Leon_Jinhai_Sun】
实际上集群分区概念在之前的Eureka中也有出现,比如:
eureka:
client:
fetch-registry: false
register-with-eureka: false
service-url:
defaultZone: http://localhost:8888/eureka
# 这个defaultZone是个啥玩意,为什么要用这个名称?为什么要要用这样的形式来声明注册中心?在一个分布式应用中,相同服务的实例可能会在不同的机器、位置上启动,比如我们的用户管理服务,可能在成都有1台服务器部署、重庆有一台服务器部署,而这时,我们在成都的服务器上启动了借阅服务,那么如果我们的借阅服务现在要调用用户服务,就应该优先选择同一个区域的用户服务进行调用,这样会使得响应速度更快。
因此,我们可以对部署在不同机房的服务进行分区,可以看到实例的分区是默认:
我们可以直接在配置文件中进行修改:
spring:
application:
name: borrowservice
cloud:
nacos:
discovery:
server-addr: localhost:8848
# 修改为重庆地区的集群
cluster-name: Chongqing当然由于我们这里使用的是不同的启动配置,直接在启动配置中添加环境变量spring.cloud.nacos.discovery.cluster-name也行,这里我们将用户服务和图书服务两个区域都分配一个,借阅服务就配置为成都地区:
修改完成之后,我们来尝试重新启动一下(Nacos也要重启),观察Nacos中集群分布情况:

可以看到现在有两个集群,并且都有一个实例正在运行。我们接着去调用借阅服务,但是发现并没有按照区域进行优先调用,而依然使用的是轮询模式的负载均衡调用。
我们必须要提供Nacos的负载均衡实现才能开启区域优先调用机制,只需要在配制文件中进行修改即可:
spring:
application:
name: borrowservice
cloud:
nacos:
discovery:
server-addr: localhost:8848
cluster-name: Chengdu
# 将loadbalancer的nacos支持开启,集成Nacos负载均衡
loadbalancer:
nacos:
enabled: true现在我们重启借阅服务,会发现优先调用的是同区域的用户和图书服务,现在我们可以将成都地区的服务下线:

可以看到,在下线之后,由于本区域内没有可用服务了,借阅服务将会调用重庆区域的用户服务。
除了根据区域优先调用之外,同一个区域内的实例也可以单独设置权重,Nacos会优先选择权重更大的实例进行调用,我们可以直接在管理页面中进行配置:

或是在配置文件中进行配置:
spring:
application:
name: borrowservice
cloud:
nacos:
discovery:
server-addr: localhost:8848
cluster-name: Chengdu
# 权重大小,越大越优先调用,默认为1
weight: 0.5通过配置权重,某些性能不太好的机器就能够更少地被使用,而更多的使用那些网络良好性能更高的主机上的实例。
边栏推荐
猜你喜欢
随机推荐
OA项目之待开会议&历史会议&所有会议
杜教筛【莫比乌斯前缀和,欧拉函数前缀和】推导与模板【一千五百字】
复星医药募资44.84亿:高毅资产认购20亿 成第三大股东
淘宝/天猫获取卖出的商品订单列表 API
对“不可能三角”发起挑战的公链们
【ModelArts系列】华为ModelArts Notebook训练yolov3模型(开发环境)
精品:淘宝/天猫获取购买到的商品订单详情 API
(六)《数电》——二极管与CMOS门电路(入门)
Leetcode.24 两两交换链表中的节点(递归)
新手入门上位机开发 C#语言:PC串口发送数据
Public chains challenging the "Impossible Triangle"
【科研工具的使用】A
QT based on the third day (3) widget, dialog and mainwindow
gnss rtcm rtklib Ntrip...
开放地址法哈希实现——线性探测法
华宝新能通过注册:拟募资近7亿 营收增加利润反而下降
CF1473C No More Inversions
解决导航栏变黑色
Leetcode.19 删链表倒数第 N 个结点(栈/先后指针)
NLP Natural Language Processing (2)









