01-nacos部署&搭建&使用

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

  • 21
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
你好!要在Docker上部署Nacos 2.3.3集群,可以按照以下步骤进行操作: 1. 首先,确保你已经安装了Docker和Docker Compose。 2. 创建一个目录,用于存放Nacos的配置文件和数据: ``` mkdir nacos cd nacos ``` 3. 在该目录下创建一个`docker-compose.yml`文件,并将以下内容添加到文件中: ```yaml version: '3' services: nacos-1: image: nacos/nacos-server:2.3.3 container_name: nacos-1 ports: - 8848:8848 environment: - PREFER_HOST_MODE=hostname volumes: - ./data:/home/nacos/data - ./logs:/home/nacos/logs - ./init.d:/home/nacos/init.d nacos-2: image: nacos/nacos-server:2.3.3 container_name: nacos-2 ports: - 8849:8848 environment: - PREFER_HOST_MODE=hostname - SPRING_DATASOURCE_PLATFORM=mysql - MYSQL_SERVICE_HOST=mysql - MYSQL_SERVICE_PORT=3306 - MYSQL_SERVICE_DB_NAME=nacos_devtest - MYSQL_SERVICE_USER=nacos - MYSQL_SERVICE_PASSWORD=nacos volumes: - ./data:/home/nacos/data - ./logs:/home/nacos/logs - ./init.d:/home/nacos/init.d mysql: image: mysql:5.7 container_name: mysql ports: - 3306:3306 environment: - MYSQL_ROOT_PASSWORD=root volumes: - ./data/mysql:/var/lib/mysql ``` 这个`docker-compose.yml`文件定义了一个包含两个Nacos实例和一个MySQL实例的Docker Compose服务。 4. 创建一个名为`application.properties`的文件,并将以下内容添加到文件中: ``` server.address=${spring.cloud.nacos.server-addr} spring.cloud.nacos.server-addr=localhost:8848,localhost:8849 spring.datasource.platform=mysql db.num=1 db.url.0=jdbc:mysql://mysql:3306/nacos_devtest?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true db.user=nacos db.password=nacos ``` 这个配置文件将Nacos的集群地址配置为`localhost:8848,localhost:8849`。 5. 现在,运行以下命令来启动Nacos集群: ``` docker-compose up -d ``` 这将启动两个Nacos实例和一个MySQL实例,并将它们连接在一起。 6. 等待一段时间后,通过访问`http://localhost:8848/nacos`和`http://localhost:8849/nacos`来验证Nacos集群是否成功部署。 注意:如果你在远程服务器上部署Nacos集群,请将`localhost`替换为服务器的IP地址。 希望这些步骤能够帮助你成功部署Nacos 2.3.3集群!如果有任何问题,请随时向我提问。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值