美文网首页
Nacos注册中心-分级存储模型

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

作者: 让你变好的过程从来都不会很舒服 | 来源:发表于2022-07-05 13:17 被阅读0次

    一个服务可以有多个实例,例如我们的 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就将同一机房内的实例,划分为一个集群

    微服务互相访问时,应该尽可能访问同集群实例,因为本地访问速度更快。当本集群内不可用时,才访问其它集群。例如:杭州机房内的 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会优先访问本地集群,在本地集群的服务是以随机访问,当本地集群多个服务都无法访问,则会访问外地集群服务

    相关文章

      网友评论

          本文标题:Nacos注册中心-分级存储模型

          本文链接:https://www.haomeiwen.com/subject/xtrmmrtx.html