91名师指路-头部
91名师指路

spring boot 集成nacos

由于某些原因,现在不支持支付宝支付,如需要购买源码请加博主微信进行购买,微信号:13248254750

项目环境: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

联系博主    
用户登录遮罩层
x

账号登录

91名师指路-底部