Nacos是Springcould Alibaba开发的服务管理发现,配置中心等功能中间件。
使用教程:
- 使用docker安装Nacos server
docker pull nacos/nacos-server
- 随后dockersrun启动容器 -e MODE=standalone为单节点启动
docker run --name nacos-quick -e MODE=standalone -p 8849:8848 -d nacos/nacos-server:2.0.2
注册中心
服务发现注册
也是先引入依赖
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
<version>2023.0.0.0-RC1</version>
</dependency>
在application.properties里添加服务名及注册中心地址
spring.application.name=service-provider
spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848
然后添加启用服务发现注册注解在启动类上就好了
@EnableDiscoveryClient
配置中心:
添加依赖
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
<version>2023.0.0.0-RC1</version>
</dependency>
在resource目录下创建bootstrap.properties文件并且配置 Nacos server 的地址和应用名
spring.cloud.nacos.config.server-addr=127.0.0.1:8848
spring.application.name=example
由于新版本springboot移除了bootstrap依赖,我们直接使用bootstrap配置会报错,所以我们再引入bootstrap依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-bootstrap</artifactId>
<version>4.1.2</version>
</dependency>
此时便可以在配置中心配置名为“{prefix}.{file-extension}”的配置了。prefix为服务名 file-extension为配置文件后缀,yaml或properties。对应服务会自动加载这种配置。
如要做配置拆分抽取,在bootstrap文件中如下依次配置即可,refresh=true则会在配置更新后自动刷新服务获取最新配置
# bootstrap
spring.cloud.nacos.config.extension-configs[0].data-id=datasource.properties
spring.cloud.nacos.config.extension-configs[0].refresh=true
spring.cloud.nacos.config.extension-configs[1].data-id=redisconfig.properties
spring.cloud.nacos.config.extension-configs[1].refresh=true