Nacos 配置中心初体验

Nacos 下载与初始化配置

本文使用1.2.0,下载地址:https://github.com/alibaba/nacos/releases

Nacos 单机模式支持持久化配置到 MySQL 数据库,修改conf/application.properties配置:

spring.datasource.platform=mysql

db.num=1

db.url.0=jdbc:mysql://数据库地址:端口/数据库名?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.user=用户名
db.password=密码

然后在数据库执行conf/nacos-mysql.sql初始化数据库

Linux 环境下执行./bin/startup.sh启动 Nacos,Windows 环境下双击bin/startup.cmd启动 Nacos

Nacos 配置及在 Spring Cloud 中的使用

Nacos 可以根据三种模式区分不同环境下的配置:

    1. 根据Data Idprofiles(spring.profiles.active)
    1. 根据Group
    1. 根据Namespace(命名空间)

根据 Namespace 区分不同环境下的配置应该更适用于实际项目,本文以 Namespace 模式为例

新建命名空间

新增名字为dev的命名空间

新增配置

dev命名空间新增配置,Data Idservice1.ymlGrouptest,配置格式为YAML,内容为:

server:
  port: 8070

在 Spring Cloud 中使用

添加依赖:

<dependencies>
    ...

    <dependency>
        <groupId>com.alibaba.cloud</groupId>
        <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
    </dependency>

    ...
</dependencies>

<dependencyManagement>
    <dependencies>
        ...

        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-alibaba-dependencies</artifactId>
            <version>2.2.0.RELEASE</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>

        ...
    </dependencies>
</dependencyManagement>

spring-cloud-alibaba-dependencies是 Spring Cloud Alibaba BOM,包含了 Spring Cloud Alibaba 的所有依赖的版本,使用Nacos, Sentinel等时不用再指定版本

新建 Spring Cloud 项目,在bootstrap.yml新增配置:

spring:
  application:
    name: service1

  cloud:
    nacos:
      config:
        server-addr: 192.168.92.1:8848 # Nacos 地址与端口
        namespace: e5fc372c-ad66-4e0e-a353-a217d0a315ba # 命名空间ID
        group: test
        file-extension: yml

启动项目,可以看到项目使用的端口为在 Nacos 中配置的 8070 说明配置生效

扩展配置

有时我们想要将配置放置在不同的文件或者多个项目共用部分配置,则可以添加扩展配置

在 Nacos 添加配置

dev命名空间新增配置,Data Idgreeting.ymlGroupcommon,配置格式为YAML,内容为:

greeting: Hello, world!

dev命名空间新增配置,Data Idauthor.ymlGroupcommon,配置格式为YAML,内容为:

author: Joe.Ye

Spring Cloud 配置

方法一:

spring:
  application:
    name: service1

  cloud:
    nacos:
      config:
        server-addr: 192.168.92.1:8848
        namespace: e5fc372c-ad66-4e0e-a353-a217d0a315ba
        group: test
        file-extension: yml
        extension-configs[0]:
          data-id: greeting.yml
          group: common
          refresh: true # 配置修改后是否自动更新
        extension-configs[1]:
          data-id: author.yml
          group: common
          refresh: true

方法二:

spring:
  application:
    name: service1

  cloud:
    nacos:
      config:
        server-addr: 192.168.92.1:8848
        namespace: e5fc372c-ad66-4e0e-a353-a217d0a315ba
        group: test
        file-extension: yml
        extension-configs:
          - data-id: greeting.yml
            group: common
            refresh: true
          - data-id: author.yml
            group: common
            refresh: true

测试

@RefreshScope # 配置自动更新
@RestController
public class GreetingController {

    @Value("${greeting:}")
    private String greetingStr;
    @Value("${author:}")
    private String authorStr;

    @RequestMapping("/greeting")
    public String greeting() {
        return greetingStr + " from " + authorStr;
    }
}

访问:http://localhost:8070/greeting

版权声明:
作者:Joe.Ye
链接:https://www.appblog.cn/index.php/2023/03/24/initial-experience-of-nacos-configuration-center/
来源:APP全栈技术分享
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
打赏
海报
Nacos 配置中心初体验
Nacos 下载与初始化配置 本文使用1.2.0,下载地址:https://github.com/alibaba/nacos/releases Nacos 单机模式支持持久化配置到 MySQL 数据库,修改conf/appl……
<<上一篇
下一篇>>
文章目录
关闭
目 录