前言
我们之前介绍了nacos作为注册中心,实现服务的注册与发现,这里主要介绍nacos作为配置中心
内容
nacos作为配置中心
1.实践
nacos服务注册和配置中心是两个不同的依赖模块,可以单独各自引入依赖
1.引入依赖
1 2 3 4
| <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId> </dependency>
|
2.配置
我们需要修改appliaction.yml文件为bootstrap.yml文件,不然会报空指针异常错误。bootstartp.yml文件是会在application.yml文件加载前加载。保证初始化的bean能够提前获取到一些属性。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
| spring: application: name: nacos-config-client cloud: nacos: config: server-addr: 127.0.0.1:8848 server: port: 8055 ``` ##### 3.在nacos配置列表中创建properties文件 ![](https://raw.githubusercontent.com/startshineye/img/master/2020/01/31.png) ##### 4.创建controller测试 我们已经创建了配置中心,我们看通过配置是否可以获取到值 ![](https://raw.githubusercontent.com/startshineye/img/master/2020/01/32.png) 我们发现我们能够获取到以上的值 ##### 5.修改controller注解,然后修改配置列表看是否实时生效 现在我们修改下配置中心里面的配置: ![](https://raw.githubusercontent.com/startshineye/img/master/2020/01/33.png) 我们再次通过页面访问以上接口: http://127.0.0.1:8055/test/config 结果: yxm 我们修改值时候并没有实时刷新,所以我们在controller加上注解:@RefreshScope;然后重启服务。 即可实现以上实时刷新功能。 我们修改properties文件时候,idea的页面下回刷新出以下信息:
|
Refresh keys changed: [test]
1 2 3 4 5 6
| ##### 6.yml文件配置加载 nacos默认加载:properties文件,是通过一个属性:file-extension 现在我们改成:yml文件 bootstrap.yml文件:
|
spring:
application:
name: nacos-config-client
cloud:
nacos:
config:
server-addr: 127.0.0.1:8848
file-extension: yml
server:
port: 8055
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| ![](https://raw.githubusercontent.com/startshineye/img/master/2020/01/34.png) 创建:nacos-config-client.yml配置文件 ![](https://raw.githubusercontent.com/startshineye/img/master/2020/01/35.png) 访问后得到: yml-test ##### 7.Data ID Data ID组成:spring.application.name+file-extension 我们从nacos的文档里面可以知道data id是由:应用名称+profiles+file-extension
|
spring:
application:
name: nacos-config-client
cloud:
nacos:
config:
server-addr: 127.0.0.1:8848
file-extension: yml
profiles:
active: dev
server:
port: 8055
```
我们可以知道我们创建的配置文件在应用启动后默认加载:应用名称+profiles+file-extension 文件
然后我们创建:
我们测试:
http://127.0.0.1:8055/test/config
结果返回:
dev-yxm