nacos服务的分级存储

  1. 举例说明
    1. 一个服务可以有多个实例,比如我们当前有4个实例,都叫做nacos-user-service服务
      1. ip地址端口服务器所属地区集群
        192.168.xxx.xxx18080广东GD
        192.168.xxx.xxx18081广东GD
        192.168.xxx.xxx18082广西GX
        192.168.xxx.xxx18083广西GX
    2. 所以我们可以将nacos-user-service服务根据地区划分为广东集群、广西集群这两个集群,同时每个集群下面又存在两个服务实例,这样就形成了服务->集群->实例的分级模型
    3. 在微服务相互访问时,我们应该尽可能的在同集群(地区)实例之间相互访问,因为局域网或者本地访问的速度较快,如果当同集群中的实例不可用时,才会访问其他集群的服务
  2. 那么现在我们可以在nacos的关联微服务中application.yml配置集群配置信息,示例为nacos-user-service实例的配置
    1. server:
        port: 18080
      spring:
        application:
          #应用的名称
          name: nacos-user-service
        cloud:
          nacos:
            # Nacos Server 启动监听的ip地址和端口
            server-addr: 192.168.xxx.xxx:8848
            discovery:
              # nacos开启鉴权之后的用户名
              username: nacos
              # nacos开启鉴权之后的用户登录密码
              password: nacos
              # 配置服务实例的集群名称
              cluster-name: GD
      
    2. 除了根据上面直接修改配置文件的集群名称(cluster-name)外,我们也可以在微服务启动时设置JVM的运行参数,如下列设置运行的服务端口以及服务实例的集群名称
      1. -Dserver.port=18083 -Dspring.cloud.nacos.discovery.cluster-name=GX
  3. 启动4个nacos-user-service实例之后,查看nacos的控制台
    1. 点击详细按钮
      1. 广东集群(GD)
      2. 广西集群(GX)
  4. 配置nacos的集群下同集群优先的负载均衡
    1. 默认的注解的@LoadBalanced中ZoneAvoidanceRule并不能实现根据同集群优先来实现负载均衡。所以我们需要使用Nacos中提供的一个NacosRule来实现,这样就可以实现优先从同集群中挑选服务实例。以下示例为nacos-order-service
      1. 首先需要将nacos-order-service归属到广东集群(GD)中,然后修改负载均衡规则,配置application.yml文件如下
        1. server:
            port: 18090
          spring:
            application:
              #应用的名称,可选
              name: nacos-order-service
            cloud:
              nacos:
                # Nacos Server 启动监听的ip地址和端口
                server-addr: 192.168.xxx.xxx:8848
                discovery:
                  # nacos开启鉴权之后的用户名
                  username: nacos
                  # nacos开启鉴权之后的用户登录密码
                  password: nacos
                  cluster-name: GD
          
          nacos-user-service:
            ribbon:
              # 配置同集群优先的负载均衡规则
              NFLoadBalancerRuleClassName: com.alibaba.cloud.nacos.ribbon.NacosRule
          
    2. nacos的控制台信息
  5. 修改集群中的权重配置实现负载均衡
    1. 默认情况下NacosRule是同集群内随机挑选,不会考虑机器的性能问题。但我们在实际部署中会出现服务器设备性能有差异,部分实例所在机器性能较好,另一些较差,我们希望性能好的机器承担更多的用户请求。因此,Nacos提供了权重配置来控制访问频率,权重越大则访问频率越高。
      1. 在nacos的控制台,找到服务的实例,点击编辑按钮,即可修改服务实例的权重
      2. 如果权重修改为0,则该实例永远不会被访问
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值