1.5 nacos注册中心

一、认识和安装

  1. 认识Nacos:

    1. Nacos是阿里巴巴的产品,现在是SpringCloud中的一个组件,相比Eureka功能更加丰富

  2. Nacos的安装:

    1. 详见附录:附录

二、快速入门

  1. 将服务注册到Nacos

    1. 在腐工程中导入Nacos坐标依赖

      			<!--  SpringCloud  -->
                  <dependency>
                      <groupId>org.springframework.cloud</groupId>
                      <artifactId>spring-cloud-dependencies</artifactId>
                      <version>${spring-cloud.version}</version>
                      <type>pom</type>
                      <scope>import</scope>
                  </dependency>
      
                  <!--  引入Nacos  -->
                  <dependency>
                      <groupId>com.alibaba.cloud</groupId>
                      <artifactId>spring-cloud-alibaba-dependencies</artifactId>
                      <version>${nacos-version}</version>
                      <type>pom</type>
                      <scope>import</scope>
                  </dependency>

      备注:因为nacos基于Cloud,所以,cloud也需要存在

    2. 因为使用了nacos,所以原来使用eureka的坐标就要全部注释掉,换成nacos的客户端依赖

      		<dependency>
                  <groupId>com.alibaba.cloud</groupId>
                  <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
              </dependency>
    3. 修改yml文件,将eureka配置修改为nacos配置

      spring:
      	cloud:
      		nacos:
      			server-addr: 地址:端口号

      备注:nacos默认端口号8848

    4. 启动,并查看nacos的服务列表中是否有内容(服务管理-服务列表)

三、服务多级存储模型

  1. Nacod分级存储模型:

    服务分地域存放的概念想法

    备注:多级地域缓存模型

  2. 服务跨集群调用问题

    1. 可以访问本地服务

    2. 可以访问外地服务

    建议:默认访问本地的服务,因为的效率更高

    ​ 本地服务不可访问时候,再访问其他集群

  3. 如何配置实例的集群属性

    1. 修改yml配置

      备注:不同的地方配置不同的地域配置,到时候可以在nacos中展示不同的内容

四、NacosRule负载均衡

  1. 修改负载均衡为同集群优先(默认轮询)

  2. 修改yml配置:

    备注:修改在调用方——消费方

  3. 如果本地找不到服务,会到其他集群中寻找,同时报告一个警告信息

五、服务器实例的权重配置

  1. 根据权重负载均衡

    1. Nacos提供了权重配置来控制访问频率,权重越大,访问频率越高

  2. 修改权重:权重范围一般在0-1之间

    1. 进入服务列表,找到对应的服务实例列表

    2. 点击编辑,在弹窗中修改权重,保存即可

  3. 使用骚套路:

    1. 维护升级!权重调整为0,不会受到任何访问

    2. 升级成功后,权重逐渐调整,少量请求,帮忙测试!

六、环境隔离——namespace

  1. Nacos中服务存储和数据存储的最外层都是一个名为namespace的东西,用来做最外层隔离

  2. 类似开发环境,测试环境,生产环境等等

  3. 新建命名空间

    1. nacos系统中,左侧菜单栏找到命名空间

    2. 进入后新建命名空间即可

      1. ID:默认UUID生成

      2. 名称:命名空间的名称

      3. 描述:就是描述

  4. 代码配置指定命名空间环境

    1. 修改yml配置

      备注:namespace这里填写创建命名空间时候的id!!!

七、Nacos与Eureka对比

  1. 临时实例与非临时实例

    服务注册到Nacos时候,可以选择注册为临时实例和非临时实例,通过下面的配置来设置

    备注:配置服务为非临时服务(不建议)

    临时服务心跳不正常会比剔除

    非临时服务心跳不正常不会被剔除

八、注意

  1. SpringBoot 2.5 版本已经弃用Ribbon做OpenFeign的负载均衡操作

  2. SpringCloudAlibaba在2021.x版本后弃用Ribbon做负载均衡

注意:如果使用了不匹配的版本,那么会造成远程调用失败的问题,甚至启动失败的问题

最后更新于

这有帮助吗?