01-nacos部署&搭建&使用

本文介绍了Nacos,一个阿里巴巴开源的动态服务发现、配置管理和服务管理平台,详细阐述了其功能如服务注册与发现、配置管理、健康监测、动态路由等,并指导了下载、部署和配置过程,包括SpringCloudAlibaba集成和权限管理。
摘要由CSDN通过智能技术生成

Nacos官方文档:什么是 Nacos

什么是nacos?

Nacos(中文名为"注册中心和配置中心")是阿里巴巴开源的一个动态服务发现、配置管理和服务管理平台。它提供了服务注册与发现、配置管理和服务管理等核心功能,是构建和管理微服务架构的基础设施之一。

Nacos 主要提供以下功能:

  1. 服务注册与发现:微服务架构中,各个服务实例需要注册到注册中心,并通过注册中心获取其他服务实例的地址信息,实现服务之间的发现和调用。

  2. 配置管理:Nacos 可以作为统一的配置中心,管理应用程序的配置信息。它支持动态配置更新,可以在运行时动态修改配置,并且能够实现配置的推送,使得配置的变更能够及时生效。

  3. 服务健康监测:Nacos 可以对注册的服务进行健康状态的监测,通过心跳检测和实时的健康状态上报,确保服务实例的可用性。

  4. 动态路由和负载均衡:Nacos 集成了服务网格技术,可以提供动态路由和负载均衡的能力,帮助应用程序实现流量的动态调度和负载均衡。

  5. 分布式配置共享:Nacos 支持将配置共享给多个应用程序,实现多个应用程序共享同一份配置,并支持配置的版本管理,方便应用程序的升级和回滚。

一、nacos文件下载

  1. 参考组件版本依赖:版本说明 · alibaba/spring-cloud-alibaba Wiki · GitHub,找到自己搭建Spring Cloud Alibaba项目使用版本对应nacos版本

  2. Releases · alibaba/nacos · GitHub找到对应版本

  3. 点进入找到下载文件地址

  4. tar为Linux系统使用、zip为win/mac系统使用

  5. 点击对应文件下载

二、nacos部署

  1. 下载完成后解压打开

  2. 进入bin,启动文件默认配置为集群模式,需修改为startup.cmd中的配置,set MODE="standalone",单机模式

  3. 执行命令sh startup.sh -m standalone 启动

    如果输出结果如下图,则把解压好的nacos文件删除,手动解压会导致这种情况,需要从第2步开始重新来

  4. 成功以后进入可视化页面http://127.0.0.1:8848/nacos/ 

三、nacos搭建

  1. 修改pom文件

    1. 在要使用nacos的服务中,添加依赖

      				<dependency>
                  <groupId>org.springframework.boot</groupId>
                  <artifactId>spring-boot-starter-web</artifactId>
              </dependency>
              <dependency>
                  <groupId>com.alibaba.cloud</groupId>
                  <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
              </dependency>
  2. 修改配置文件

    配置项参考:https://github.com/alibaba/spring-cloud-alibaba/blob/2022.x/spring-cloud-alibaba-examples/nacos-example/nacos-config-example/readme-zh.md#%E6%9B%B4%E5%A4%9A%E9%85%8D%E7%BD%AE%E9%A1%B9

    server:
    	port: 9001  //服务端口号
    
    spring:
      application:
        name: order-nacos  //注册名称
      cloud:
        nacos:
          serverAddr: 127.0.0.1:9100  //注册nacos地址
      config:
        import:
          - nacos:nacos-config-example.properties?refresh=true  //引入配置文件
  3. 启动服务测试

  4. 服务调用测试

    1. 启动多个服务

    2. 按照nacos示例代码,调用测试

四、集群搭建

参考文档:集群部署说明

  1. 在对应服务器上下载nacos安装

  2. 修改conf/application.properties配置文件

    • 端口号:server.port=8848

    • 放开数据源配置:spring.datasource.platform=mysql

    • 放开数据源数量配置:db.num=1

    • 放开数据源连接配置:db.url.0=jdbc:mysql://127.0.0.1:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC

    • 放开数据源账号配置db.user.0=nacos

    • 放开数据源密码配置db.password.0=nacos

  3. 执行数据库脚本

    1. 将conf/nacos-mysql.sql数据库脚本在对应数据库中执行

  4. 修改cluster.conf文件

    1. 将conf/cluster.conf.example文件复制并重命名cluster.conf,将nacos集群服务器的ip:端口写在配置文件中

  5. 修改bin/startup.sh配置,为机器模式MODE="cluster"

    1. 根据机器硬件,调整xms、xmx等配置

  6. 按照2/3/4/5/6步骤修改其他集群服务器,然后./startup.sh启动

  7. 启动测试nacos的管理界面查看

  8. 安装nginx,对nacos集群服务器,做负载均衡

  9. yml代码配置文件修改,配置项server-addr为nginx代理地址

五、Nacos-config配置

  1. 创建配置文件

    1. 在Nacos管理界面进入配置管理/配置列表点击+号可创建配置文件

      1. 填写Data ID(文件名)

        1. 完整格式如下:${prefix}-${spring.profiles.active}.${file-extension}

        2. prefix 默认为 spring.application.name 的值,也可以通过配置项 spring.cloud.nacos.config.prefix来配置。

        3. spring.profiles.active 即为当前环境对应的 profile,详情可以参考 Spring Boot文档注意:当 spring.profiles.active 为空时,对应的连接符 - 也将不存在,dataId 的拼接格式变成 ${prefix}.${file-extension}

        4. file-exetension 为配置内容的数据格式,可以通过配置项 spring.cloud.nacos.config.file-extension 来配置。目前只支持 properties 和 yaml 类型。

      2. Group(分组)

      3. 描述

      4. 配置格式

      5. 配置内容

  2. 添加依赖

    <dependency>
                <groupId>com.alibaba.cloud</groupId>
                <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
            </dependency>
  3. 配置方式

    1. profile配置

      1. 添加配置

        spring:
          profiles:
            active: dev
          cloud:
            nacos:
              config:
                server-addr: ${nacos.server-addr}
                group: ${nacos.config.group:DEFAULT_GROUP}
                namespace: ${nacos.config.namespace:}
                file-extension: yaml
      2. 创建不同环境的配置文件:在 Nacos 上创建不同环境的配置文件,每个配置文件都使用特定的 Profile 名称。

        1. 配置格式为:${prefix}-${spring.profiles.active}.${file-extension}

        2. 例如,我们可以在 Nacos 中创建三个配置文件,分别是 ${prefix}.yaml 、${prefix}-dev.yaml 和 ${prefix}-prod.yaml。按照上方配置dev,会优先加载{prefix}-dev.yaml文件,如果{prefix}-dev.yaml没有就会加载${prefix}.yaml文件

    2. 默认配置

      1. 添加配置

        spring:
          cloud:
            nacos:
              config:
                server-addr: ${nacos.server-addr}
                group: ${nacos.config.group:DEFAULT_GROUP}
                namespace: ${nacos.config.namespace:}
                file-extension: yaml
      2. 配置格式为:${prefix}.${file-extension}

        1. 例如,我们可以在 Nacos 中创建三个配置文件,分别是 ${prefix}.yaml 、${prefix}-dev.yaml 和 ${prefix}-prod.yaml。按照上方配置,就会加载${prefix}.yaml文件

    3. extension-configs配置(加载多配置文件)

      1. 添加配置

        spring:
          cloud:
            nacos:
              config:
                server-addr: ${nacos.server-addr}
                group: ${nacos.config.group:DEFAULT_GROUP}
                namespace: ${nacos.config.namespace:}
                file-extension: yaml
                extension-configs:
                  - dataId: redis.yml
                    refresh: true
                  - dataId: mysql.yml
                    refresh: true
      2. 可自定义Data ID,加载指定的多个配置文件

    4. shared-configs配置(加载多配置文件)

      1. 添加配置

        spring:
          cloud:
            nacos:
              config:
                server-addr: ${nacos.server-addr}
                group: ${nacos.config.group:DEFAULT_GROUP}
                namespace: ${nacos.config.namespace:}
                file-extension: yaml
                shared:
                  - dataId: redis.yml
                    refresh: true
                  - dataId: mysql.yml
                    refresh: true
      2. 可自定义Data ID,加载指定的多个配置文件

  4. 配置文件监控刷新

    1. 在 application.properties(或 bootstrap.properties)中开启配置的动态刷新: spring.cloud.config.refresh.enabled=true

    2. 在需要刷新的 Bean 上添加 @RefreshScope 注解:@RefreshScope

  5. FAQ:

    1. 四种配置的优先级?

      1. 优先级大的会覆盖小的,并且形成互补

      2. profile > 默认配置 > extension-configs > shared-configs

    2. shared-configs 与extension-configs配置 有什么区别?

      1. shared-configs:这是 Nacos 中的共享配置功能。具体来说,shared-configs 是指多个应用程序共享同一个配置。这样可以让多个应用程序使用同一份配置,避免了重复配置的问题。适合多个应用程序之间的配置信息完全相同的情况。

      2. extension-configs:这是 Nacos 中的扩展配置功能。它允许应用程序继承和扩展来自其他配置的部分或全部内容。通过扩展配置,应用程序可以继承其他配置,并在其基础上做一些定制化的修改。适合应用程序之间的配置存在继承与差异化的情况。

      区别:

      • 共享配置适用于多个应用程序共享同一份配置的情况,它们可以直接引用相同的共享配置。而扩展配置则允许应用程序继承和扩展其他配置的部分或全部内容。

      • 共享配置没有进行具体的继承与修改操作,而扩展配置可以基于其他配置进行修改和定制化。

      • 共享配置在配置项发生变化时,所有引用该配置的应用程序都会受到影响。而扩展配置可以根据自身的需求对继承的配置进行修改,不受其他应用程序的影响。

六、权限管理

  1. 修改配置文件

    1. 如果要使用Nacos管理界面的权限控制功能,需要Nacos中的application.properties文件中nacos.core.auth.enabled=false,修改为true

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值