Nacos注册中心-分级存储模型

2022-07-05  本文已影响0人  让你变好的过程从来都不会很舒服

一个服务可以有多个实例,例如我们的 user-service,可以有:

假如这些实例分布于全国各地的不同机房,例如:

Nacos就将同一机房内的实例,划分为一个集群

微服务互相访问时,应该尽可能访问同集群实例,因为本地访问速度更快。当本集群内不可用时,才访问其它集群。例如:杭州机房内的 order-service 应该优先访问同机房的 user-service。


配置集群

接下来我们给 user-service 配置集群

修改 user-service 的 application.yml 文件,添加集群配置:

spring:
  cloud:
    nacos:
      server-addr: localhost:8848
      discovery:
        cluster-name: HZ # 集群名称 HZ杭州

重启两个 user-service 实例后,我们再去启动一个上海集群的实例。

-Dserver.port=8083 -Dspring.cloud.nacos.discovery.cluster-name=SH

查看 nacos 控制台


NacosRule

Ribbon的默认实现 ZoneAvoidanceRule (根据服务轮询访问)并不能实现根据同集群优先来实现负载均衡,我们把规则改成 NacosRule 即可。我们是用 orderservice 调用 userservice,所以在 orderservice 配置规则。

userservice:
  ribbon:
    NFLoadBalancerRuleClassName: com.alibaba.cloud.nacos.ribbon.NacosRule #负载均衡规则 

会发现nacos会优先访问本地集群,在本地集群的服务是以随机访问,当本地集群多个服务都无法访问,则会访问外地集群服务

上一篇下一篇

猜你喜欢

热点阅读