一.引入Nacos作为配置中心的相关依赖

webshop-common项目的pom.xml文件下,导入Nacos作为配置中心的相关依赖,如下:

<!--nacos配置中心-->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
        </dependency>

二.添加bootstrap.properties文件,配置Nacos Config元数据

在项目的/src/main/resources目录下添加bootstrap.properties文件,这个文件会优先被加载,在这个文件里配置上Nacos Config的元数据,如下:

#服务名
spring.application.name=webshop-order
#nacos服务地址
spring.cloud.nacos.config.server-addr=127.0.0.1:8848

nacos配置hadoop Nacos配置文件更新到内存_作为配置中心

三.开启动态刷新功能

如果没有使用配置中心的话,一旦服务配置有更改就会需要重新启动,那当服务都去配置中心拿相应配置信息时,就需要开启动态刷新这个功能来感知配置中心内容的变化,从而作出改变。

使用@RefreshScope开启动态刷新功能,这里以webshop-order项目的OrderController类为例,如下:

nacos配置hadoop Nacos配置文件更新到内存_作为配置中心_02

四.在Nacos Server上添加配置

登录Nacos Server,点击配置列表,选择添加配置:

nacos配置hadoop Nacos配置文件更新到内存_动态刷新_03


输入配置信息,Data ID默认一般都是应用名.properties,如下:

nacos配置hadoop Nacos配置文件更新到内存_java_04


点击发布。

五.动态展示配置中心的值

找一个controller类,写一个接口,通过@Value取得配置文件的值,展示给前端,如下:

nacos配置hadoop Nacos配置文件更新到内存_作为配置中心_05


启动webshop-order服务,访问http://localhost:9000/order/order/info,结果如下:

nacos配置hadoop Nacos配置文件更新到内存_作为配置中心_06


说明是可以成功取到配置中心值的,这里要注意,配置中心上的配置文件一定要先创建好,然后再启动服务,否则本地项目没有配置相应的属性,@Value又要去取,那启动就会报错。接着修改Nacos中的配置文件中的值:

nacos配置hadoop Nacos配置文件更新到内存_配置文件_07


改成如下属性值:

nacos配置hadoop Nacos配置文件更新到内存_动态刷新_08


不重启服务,直接刷新页面,结果如下:

nacos配置hadoop Nacos配置文件更新到内存_引入Nacos_09


可以发现属性值已经发生变化了。

引入Nacos作为配置中心,统一维护各服务的配置信息,修改后动态刷新,避免了反复重启服务对业务造成影响,同时也更易于维护。