原 spring boot 集成nacos
版权声明:本文为博主原创文章,请尊重他人的劳动成果,转载请附上原文出处链接和本声明。
本文链接:https://www.91mszl.com/zhangwuji/article/details/1334
项目环境:spring boot 2.1.4 + nacos-config-spring-boot-starter 0.2.9 + nacos-server-2.0.2
概念补充:
1)nacos中namespace(命名空间)是用来区分不同的环境的,如dev,test,pre,p等等。
2)nacos中Group是用用来区分不同项目的,如A和B项目可以用Group来区分。
1)引入pom
<dependency>
<groupId>com.alibaba.boot</groupId>
<artifactId>nacos-config-spring-boot-starter</artifactId>
<version>0.2.9</version>
</dependency>
2)添加nacos配置
nacos:
config:
server-addr: 127.0.0.1:8848
type: yaml # 指定文件类型:properties和yaml
auto-refresh: true # 主配置开启自动刷新
data-id: km-exp-dev.yaml
remote-first: true
namespace: 8d85227d-3737-4650-8b11-63cdb790a4e6 # 命名空间,用于区分不同的环境,如dev,test
bootstrap:
enable: true # 开启配置预加载
nacos 常见配置如下:
# 开启配置预加载功能
nacos.config.bootstrap.enable=true
# 主配置服务器地址
nacos.config.server-addr=192.168.16.104:8848
# 主配置 data-id
nacos.config.data-id=people
# 主配置 group-id
nacos.config.group=DEFAULT_GROUP
# 主配置 配置文件类型
nacos.config.type=properties
# 主配置 最大重试次数
nacos.config.max-retry=10
# 主配置 开启自动刷新
nacos.config.auto-refresh=true
# 主配置 重试时间
nacos.config.config-retry-time=2333
# 主配置 配置监听长轮询超时时间
nacos.config.config-long-poll-timeout=46000
# 主配置 开启注册监听器预加载配置服务(除非特殊业务需求,否则不推荐打开该参数)
nacos.config.enable-remote-sync-config=true
# ext-config[index] 的优先级,index越小,优先级越高,从0开始
nacos.config.ext-config[0].data-id=test
nacos.config.ext-config[0].group=DEFAULT_GROUP
nacos.config.ext-config[0].max-retry=10
nacos.config.ext-config[0].type=yaml
nacos.config.ext-config[0].auto-refresh=true
nacos.config.ext-config[0].config-retry-time=2333
nacos.config.ext-config[0].config-long-poll-timeout=46000
nacos.config.ext-config[0].enable-remote-sync-config=true
# 支持配置data-ids的设置方式
nacos.config.data-ids=people,test
# 设置nacos账号和密码
nacos.config.username=nacos
nacos.config.password=nacos
# 允许nacos上的配置优先于本地配置
nacos.config.remote-first=true
配置截图如下
3)下载nacos-server 2.0.2
下载地址:https://github.com/alibaba/nacos/releases
备注:
1)windows下:需要将nacos-server-2.0.2\nacos\bin 目录下面的 startup.cmd 文件的集群模式改成单机。nacos 2.0.2默认是集群模式。或者采用命令 startup.cmd -m standalone 启动。
2)linux下:执行命令:sh startup.sh -m standalone
4)启动nacos-server
访问地址:http://127.0.0.1:8848/nacos
账号:naocs
密码:nacos
5)在nacos-server中添加配置。
5.1)我们创建3个命名空间来表示dev,test,pre 三个不同的环境。
5.2)新增配置:Data Id就是我们配置文件里面配置的,Group 默认即可,选择YAML格式。
5.3)编写测试类
@RestController
public class TestController {
@NacosValue(value = "${project.name}", autoRefreshed = true)
private String name;
@GetMapping("/test/name")
public String selectPort(){
return name;
}
}
备注:
1)添加 @NacosValue
2)设置 autoRefreshed = true
5.4)访问nacos config 是否生效。效果如下,还有test环境也是按照上面的步骤配置一下即可。
踩坑的地方:
1)官方没有明确的说明nacos-config-spring-boot-starter 版本和 nacos-server版本的对应关系,导致配置是正常的,确无法读取到nacos的配置信息。
这里说明下
nacos-config-spring-boot-starter | nacos-server |
---|---|
0.2.9 | 2.0.2 |
0.2.8 | 1.4.2 |
2)在nacos config 中必须要写成xxx.yaml,而不是写成yml,如下图所示。
3)spring boot 是将nacos配置写在application.yml 中,如果写在bootstrap.yml中或导致读取不到配置文件;而spring cloud 却必须要将nacos写在bootstrap.yml中。
nacos持久化
1)nacos自带了一个嵌入式的数据库,实现持久化,但是不方便观察数据的存储情况。
2)nacos 0.7版本以后增加了支持mysql数据源的能力。
参考资料:
1)nacos config 其他参数配置:
1.1)spring boot 0.2.2 以及 0.1.2版本新功能使用手册
https://github.com/nacos-group/nacos-spring-boot-project/wiki/spring-boot-0.2.2-%E4%BB%A5%E5%8F%8A-0.1.2%E7%89%88%E6%9C%AC%E6%96%B0%E5%8A%9F%E8%83%BD%E4%BD%BF%E7%94%A8%E6%89%8B%E5%86%8C
1.2)spring-boot-0.2.3-以及-0.1.3-版本新功能使用手册
https://github.com/nacos-group/nacos-spring-boot-project/wiki/spring-boot-0.2.3-%E4%BB%A5%E5%8F%8A-0.1.3-%E7%89%88%E6%9C%AC%E6%96%B0%E5%8A%9F%E8%83%BD%E4%BD%BF%E7%94%A8%E6%89%8B%E5%86%8C
1.3)spring-boot-0.2.4-以及-0.1.4-版本新功能使用手册
https://github.com/nacos-group/nacos-spring-boot-project/wiki/spring-boot-0.2.4-%E4%BB%A5%E5%8F%8A-0.1.4-%E7%89%88%E6%9C%AC%E6%96%B0%E5%8A%9F%E8%83%BD%E4%BD%BF%E7%94%A8%E6%89%8B%E5%86%8C
1.4)spring-boot-0.2.6-以及-0.1.6-版本新功能使用手册
https://github.com/nacos-group/nacos-spring-boot-project/wiki/spring-boot-0.2.6-%E4%BB%A5%E5%8F%8A-0.1.6-%E7%89%88%E6%9C%AC%E6%96%B0%E5%8A%9F%E8%83%BD%E4%BD%BF%E7%94%A8%E6%89%8B%E5%86%8C
1.5)spring-boot-0.2.7-以及-0.1.7-版本新功能使用手册
https://github.com/nacos-group/nacos-spring-boot-project/wiki/spring-boot-0.2.7-%E4%BB%A5%E5%8F%8A-0.1.7-%E7%89%88%E6%9C%AC%E6%96%B0%E5%8A%9F%E8%83%BD%E4%BD%BF%E7%94%A8%E6%89%8B%E5%86%8C
2)nacos 官网:
https://nacos.io/zh-cn/docs/quick-start-spring-boot.html
2021-07-19 16:51:37 阅读(2087)
名师出品,必属精品 https://www.91mszl.com