spring-cloud-alibaba集成nacos配置中心

首先需要安装nacos,我这边是docker部署的nocas,安装步骤这里不多说,需要的见另一篇文章,下面开始正文。

1、依赖的引入

如果是直接引入的 spring-cloud-alibaba,不需要指定下面依赖的版本。

<!--nacos配置-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
<!--nacos服务发现-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>

这里依赖的springboot和cloud的版本如下:

<spring-boot.version>2.3.7.RELEASE</spring-boot.version>
<spring-cloud-alibaba.version>2.2.2.RELEASE</spring-cloud-alibaba.version>

2、修改配置文件

项目初始生成的是application.properties文件,这里是删掉后,新建的bootstrap.yml文件

spring:
application:
name: sentinel-demo
cloud:
nacos:
#nacos的服务发现
discovery:
#nacos地址,默认端口是8848
server-addr: 127.0.0.1:8848
#分组名
group: 'DEFAULT_GROUP'
#命名空间的ID
namespace: 'afa90812-db76-40c2-a23d-b35d07a2e7b7'
#nacos的用户名和密码,默认都是nacos
username: nacos
password: nacos
#nacos的配置中心
config:
server-addr: 127.0.0.1:8848
namespace: 'afa90812-db76-40c2-a23d-b35d07a2e7b7'
group: 'DEFAULT_GROUP'
username: nacos
password: nacos
file-extension: yml
profiles:
active: dev

在上面我们指定了spring.profiles.active=dev

所以需要新建一个bootstrap-dev.yml文件

spring:
application:
name: sentinel-demo
cloud:
nacos:
discovery:
server-addr: 127.0.0.1:8848
group: 'DEFAULT_GROUP'
namespace: 'sentinel-demo'
username: nacos
password: nacos
config:
server-addr: 127.0.0.1:8848
namespace: 'sentinel-demo'
group: 'DEFAULT_GROUP'
username: nacos
password: nacos
file-extension: yml

3、nacos配置中心

访问http://xxxxx:8848/nacos/index.html 进入自己的nacos Web配置页面,界面如下:

a、初始进去列表是空的,上方的命名空间只有一个public

b、可以在默认的命名空间下加配置文件,但是一般会自己建一个,以服务名命名,方便管理,我这边建了一个sentinel-demo的命名空间

c、在当前命名空间下新建一个配置

d、新建配置

Data ID的命名规则是 ${prefix}-${spring.profiles.active}.${file-extension}

prefix 默认为 spring.application.name 的值,也可以通过配置项 spring.cloud.nacos.config.prefix来配置,对应上面的bootstrap-dev.yml文件,该值是sentinel-demo

spring.profiles.active 即为当前环境对应的 profile,对应上面的bootstrap.yml 文件,该值是dev

file-exetension 为配置内容的数据格式,对应上面的bootstrap-dev.yml文件,该值是 yml

所以Data ID为 sentinel-demo-dev.yml

4、定位nacos配置文件

所以在程序启动时是如何找到nacos对应的配置文件的?

spring:
application:
name: sentinel-demo
cloud:
nacos:
config:
server-addr: 127.0.0.1:8848
namespace: 'sentinel-demo'
group: 'DEFAULT_GROUP'
username: nacos
password: nacos
file-extension: yml

 如上,先访问spring.cloud.nacos.config.server-addr这个配置中心地址,然后通过username和password登录进去,找到对应的namespace (sentinel-demo),然后根据group (DEFAULT_GROUP)和Data ID定位到配置文件,Data ID的生成规则点这里 。

5、实体类关联配置文件(动态刷新值)

新建一个类,@Value是读取配置文件的值,参数名称是demo.test,这个值需要我们自己在nacos上配置,如上图  ,加上@RefreshScope后,则每次nacos上重新发布,这里的值都会跟着刷新。

@Component
@RefreshScope
public class Demo {
@Value("${demo.test}")
String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
posted @   浪迹天涯的派大星  阅读(194)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 记一次.NET内存居高不下排查解决与启示
点击右上角即可分享
微信分享提示