nacos注册中心集群

前言:本篇将介绍nacos的集群部署,期待能方便复习以及帮助的诸位大佬

文章目录

  • nacos集群
  • 负载均衡
  • 权重配置

nacos集群

nacos注册中心集群_第1张图片

SpringBoot 整合Spring Cloud Alibaba Nacos注册中心。多数情况一个应用系统系统只有一个注册中心,但由于微服务架构系统跨区域分布部署可能有网络延迟问题,所以需要考虑多注册中心方案。

由于存在老旧基于Spring Cloud的微服务系统迁移到新注册中心问题,类似灰度发布,需要新老Nacos注册中心并存,可以通过某个SpringBoot项目同时配置多个注册中心来解决。
首先配置yml文件
修改user-service的application.yml文件,添加集群配置:

spring:
  cloud:
    nacos:
      server-addr: localhost:8848
      discovery:
        cluster-name: HZ 

重启两个user-service实例后,我们可以在nacos控制台看到下面结果:

nacos注册中心集群_第2张图片
再次复制一个user-service启动配置,添加属性:

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

nacos注册中心集群_第3张图片

spring:
  application:
    name: userservice
  profiles:
    active: dev 
  cloud:
    nacos:
      server-addr: nacos:8848 
      config:
        file-extension: yaml 

启动UserApplication3后再次查看nacos控制台:

nacos注册中心集群_第4张图片

负载均衡

默认的ZoneAvoidanceRule并不能实现根据同集群优先来实现负载均衡。

因此Nacos中提供了一个NacosRule的实现,可以优先从同集群中挑选实例。

首先给order-service配置集群信息

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

spring:
  cloud:
    nacos:
      server-addr: localhost:8848
      discovery:
        cluster-name: HZ 

修改order-service的application.yml文件,修改负载均衡规则:

userservice:
  ribbon:
    NFLoadBalancerRuleClassName: com.alibaba.cloud.nacos.ribbon.NacosRule 

权重配置

实际部署中会出现这样的场景:

服务器设备性能有差异,部分实例所在机器性能较好,另一些较差,我们希望性能好的机器承担更多的用户请求。

但默认情况下NacosRule是同集群内随机挑选,不会考虑机器的性能问题。

因此,Nacos提供了权重配置来控制访问频率,权重越大则访问频率越高。

在nacos控制台,找到user-service的实例列表,点击编辑,即可修改权重:
nacos注册中心集群_第5张图片
在弹出的编辑窗口,修改权重:
nacos注册中心集群_第6张图片

注意:如果权重修改为0,则该实例永远不会被访问

本篇文章就介绍到这里,谢谢各位大佬的支持

你可能感兴趣的:(java,spring,cloud,微服务)