Nacos Spring Cloud实现配置的动态变更

nacos官网

安装Nacos

下载安装包

  1. 最新稳定版本 下载 nacos-server-$version.zip 包。
  2. 解压安装包了,在bin目录下运行startup.cmd

运行截图

  1. 访问http://localhost:8848/nacos/#/login即可进入nacos控制台中心,账号密码默认都是nacos

Nacos config

Spring Cloud Alibaba Nacos Config

Nacos 提供用于存储配置和其他元数据的 key/value 存储,为分布式系统中的外部化配置提供服务器端和客户端支持。使用 Spring Cloud Alibaba Nacos Config,您可以在 Nacos Server 集中管理你 Spring Cloud 应用的外部属性配置。

Spring Cloud Alibaba Nacos Config 是 Config Server 和 Client 的替代方案,客户端和服务器上的概念与 Spring Environment 和 PropertySource 有着一致的抽象,在特殊的 bootstrap 阶段,配置被加载到 Spring 环境中。当应用程序通过部署管道从开发到测试再到生产时,您可以管理这些环境之间的配置,并确保应用程序具有迁移时需要运行的所有内容。

Nacos 服务端初始化

启动Nacos Server。启动方式可见 我的上一篇博客

客户端使用方式

1. 添加依赖

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

2. 在resources文件夹新加一个bootstrap.properties配置文件

spring.application.name=mall_member    <!-- 服务名 -->
spring.cloud.nacos.config.server-addr=127.0.0.1:8848

3. 在nacos后台控制中心新建一个命名空间

该步主要是为了将各微服务之间的配置隔离开来,各微服务配置各自的文件。

image-20210313181128064

4. 在我们新建的命名空间中配置文件

配置文件列表

5. 添加新配置文件

新建配置文件

6. 项目中应用我们的配置文件

如为了应用第5中的多个配置文件,我们需要在服务中的bootstrap.properties接着配置如下内容

spring.application.name=mall_coupon

spring.cloud.nacos.config.server-addr=127.0.0.1:8848
spring.cloud.nacos.config.namespace=279c8f44-b257-48df-b2d6-d1cd0d6b6d42   <!-- 需要使用的命名空间 -->
spring.cloud.nacos.config.group=dev  <!-- 需要使用的组 -->

<!-- 其他配置 -->
spring.cloud.nacos.config.ext-config[0].data-id=datasources.yml   <!-- 配置文件名称 -->
spring.cloud.nacos.config.ext-config[0].group=dev                 <!-- 配置文件所属的组 -->
spring.cloud.nacos.config.ext-config[0].refresh=true              <!-- 是否自动刷新,如果此项为true,当我们修改配置中心的这个配置文件时,服务会自动应用 -->

spring.cloud.nacos.config.ext-config[1].data-id=mybatis.yml
spring.cloud.nacos.config.ext-config[1].group=dev
spring.cloud.nacos.config.ext-config[1].refresh=true

spring.cloud.nacos.config.ext-config[2].data-id=other.yml
spring.cloud.nacos.config.ext-config[2].group=dev
spring.cloud.nacos.config.ext-config[2].refresh=true

9. 动态获取配置

需要添加注解

@RefreshScope  //一般在Controller中添加,表示动态获取配置
@Value("${配置的key值}")  //获取配置文件的值

8. 启动测试

重启项目,测试配置项是否应用上,可以测试更改配置内容,观察到无需重启服务也能应用上新的配置,这就是nacos的强大之处。

posted @ 2021-03-13 18:33  bGpi  阅读(298)  评论(0编辑  收藏  举报