程序员你是如何使用Nacos作为配置中心的?

file

假如你使用的是spring-cloud-alibaba微服务技术栈

单个服务独有配置文件

即去除应用程序的状态,配置统一外部化管理,方便进行水平的伸缩。

集成步骤:

假如我有一个应用app-design;

1,引入依赖:

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

2, 配置文件;

spring.cloud.nacos.config.enabled=true spring.cloud.nacos.config.refresh-enabled=true spring.cloud.nacos.config.server-addr=${spring.cloud.nacos.discovery.server-addr} spring.cloud.nacos.config.namespace=${spring.cloud.nacos.discovery.namespace}

说明如下:

属性 说明
spring.cloud.nacos.config.server-addr=${spring.cloud.nacos.discovery.server-addr}   nacos配置中心地址  
spring.cloud.nacos.config.namespace=${spring.cloud.nacos.discovery.namespace}   nacos的命名空间,这里跟服务发现的配置一致;  

3,使用配置的方式,同本地配置文件一样。

@Value @PropertyConfiguration 这些注解都是支持的;

4,确认方式,比如把之前的application.properties的配置放到了配置中心;

image.png

本地启动的时候,读取到了8081端口和数据库连接池的配置;

image.png

配置中心的连接原理,后面单独整理出来,知其然并知其所以然。

服务之间共享配置文件

场景:多个后端微服务,在同一个集群中共用中间件的配置信息。

比如 缓存redis, 消息队列kafka, 文件服务器, 邮件服务器;

那么对应的配置文件没有必要在所有的后端微服务中单独存在,这些配置文件应该放在公共配置文件中,但是也可以被具体的后端微服务自己的独有配置文件覆盖,使用自己的私有配置;

可结合下图理解:

 程序员你是如何使用Nacos作为配置中心的?

问题 回答
where are we?现状   中间件配置分散在很多服务中,配置繁琐,不方便统一管理  
where are we go?目的   同一个集群的中间件只维护一份,各服务共享,也可按照需要覆盖共享的配置;  
how can we go there?实现路径   基于nacos已有功能实现  

下面是实际的coding过程和测试用例;

服务app-file;

在服务对应的nacos的namespace中

1 引入共享配置 #共享中间件的配置 spring.cloud.nacos.config.shared-configs[0].data-id=mid.properties spring.cloud.nacos.config.shared-configs[0].group=DEFAULT_GROUP spring.cloud.nacos.config.shared-configs[0].refresh=true

位置: 模块start下的src/main/resources/bootstrap.properties文件中

自描述的配置信息,即引入的共享配置文件列表有哪些,可以按照需要,配置各种中间件的配置信息;

key 说明
data-id   _the data id of extended configuration 配置文件名称,带上后缀;翻译:扩展配置文件的数据id  
group   _the group of extended configuration, the default value is DEFAULT_GROUP 集群名称, 从名字来看,支持多集群的配置文件 翻译:扩展配置文件的集群,默认值是 DEFAULT_GROUP  
refresh   _whether to support dynamic refresh, the default does not support 是否刷新 翻译:是否支持动态刷新,默认不支持  

花括号[0] ,里面的0是序号,如果有多个,按照数字自增顺序进行配置;

2 在nacos中新增配置文件

根据实际场景在nacos的test命名空间中新增配置文件mid.properties

image.png

3 获取配置用例测试

测试接口代码:

@ApiOperation("测试获取公共配置文件") @GetMapping("/config/test") public Response config(){ String redisConfigServers = environment.getProperty("redis.config.servers","null"); return SingleResponse.of(redisConfigServers); }

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zygsgf.html