nacos配置中心使用
Nacos不仅可以作为注册中心使用,还可以作为配置中心使用。相比于使用spring-cloud-config-server来说,我们可以不用再去建一个配置文件的git仓库,直接可以在nacos的控制台进行操作,同时配置文件热更新也更为方便,只需要在控制台修改,服务端就更新了。
1.加依赖
<dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId> </dependency>
2.同样的创建bootstrap.yml文件
spring:
cloud:
nacos:
config:
server-addr: 127.0.0.1:8848
file-extension: yml
application:
name: order
profiles:
active: dev
这样服务启动的时候会去nacos寻找dataId为order-dev.yml的配置
3.nacos控制台创建dataId为order-dev.yml的配置
DataID就是我们的完整的配置的名字,需要加上yml后缀。
还有编辑操作可以随时修改、新增配置
启动服务可以看见加载了order-dev.yml配置的内容
4.公用配置
我们还可以通过shared-configs配置公用的的配置,比如注册中心大家都用同一个,redis的也可能是多个服务用同一个配置,修改一下上面的bootstrap.yml文件
spring:
cloud:
nacos:
config:
server-addr: 127.0.0.1:8848
file-extension: yml
shared-configs: #公用配置文件
- data-id: common1.yml
refresh: true #是否支持自动刷新
- data-id: common2.yml
refresh: true
# extension-configs: #同上
application:
name: order
profiles:
active: dev
再去nacos配置中心配置dataId为common1.yml和common2.yml的配置
重启服务可以查看日志信息里面加载了common1和common2的配置
5.配置热更新
热更新,使用@Value的配置需要在当前的类上面加上@RefreshScope注解,就可以支持热更新了,只需要在nacos配置中心修改了值,服务那边也会跟着进行刷新。(https://nacos.io/zh-cn/docs/open-api.html)
6.nacos内置derby数据库
Nacos内置了一个Derby数据库这些配置数据都放在里面
我们可以使用idea链接上derby数据库
Path是我们的nacos目录下的data/derby-data
帐户密码就是默认nacos/nacos
我们的配置信息就在这儿,如果连接不上数据库,把启动的nacos服务停掉再连接就可以了,配置信息在config_info表里面
我们登录nacos的账号和密码也在USERS表中
如果要修改nacos的密码,可以直接再这里修改,我们再这里新增一个帐户nijunyang/123456上去,它加密是用的org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder,引入这个类所在的包,直接用starter:
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-security</artifactId> </dependency>
将密码加密出来插入到数据库中去:
再次启动nacos就可以使用新密码去登录了
完整代码demo:https://github.com/bluedarkni/study/tree/master/cloud-alibaba