引入SpringCloud Alibaba(命名空间、Group)

195 阅读2分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第6天,点击查看活动详情

配置中心

配置中心就是把配置文件写在Nacos中,当你修改配置中心内容时项目不需要重启项目即可根据配置文件实现实时更新

官方文档演示:

github.com/alibaba/spr…

过程如下:

image-20220729074959340

1、引入依赖

common模块

<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>

2、创建bootstrap.properties

所有配置文件中优先级最高

服务启动后会先读取这个文件,读取后就会去从nacos配置中心加载mall-coupon.properties文件

spring.application.name=mall-coupon
spring.cloud.nacos.config.server-addr=127.0.0.1:8848

3、配置中心定义新配置文件

其中,DataID必须为微服务名.yml(properties)

配置的内容什么都可以

image-20220729084603849

4、测试

这里显示Json数据用了JSONVUE插件,可在谷歌商店直接下载

  • 在Controller加上@RefreshScope来动态获取配置数据

image-20220729084827766

image-20220729084910918

配置中心修改配置再刷新

image-20220729084943351

NameSpace

命名空间就是用来隔离资源的

什么情况下会用到呢?

你生产环境想用这一套配置,开发环境想用另一套配置。那么就可以把配置文件放到不同的命名空间中

1、新建命名空间

image-20220729090043943

配置文件

image-20220729090207468

2、bootstrap.properties指定命名空间

微服务启动的时候会先去bootstrap.properties加载,然后根据配置去Nacos配置中心找到文件

image-20220729090431390

3、测试

这个配置就是我prop命名空间定义的配置文件

image-20220729090643591

Group

一般Group和Namespace配合使用

解决方案为:每个微服务创建自己的命名空间,使用配置分组区分环境

分组在创建配置文件的时候直接进行创建即可

1、创建微服务NameSpace并创建分组

image-20220729094413879

2、bootstrap.properties指定分组

spring.application.name=mall-coupon
spring.cloud.nacos.config.server-addr=127.0.0.1:8848
spring.cloud.nacos.config.namespace=8c4aa2e1-412b-4992-90d7-b74cf3abbef1
spring.cloud.nacos.config.group=11

3、测试

image-20220729093831023