User Tools

Site Tools


config_分布式配置中心

spring cloud config 统一管理微服务配置

在微服务架构中,微服务的配置管理一般有以下需求: * 集中管理配置。 * 不同环境,不同配置。 * 运行期间可动态调整。 * 配置修改后可自动更新。 spring cloud config 为分布式系统外部化配置提供了服务器端和客户端的支持,它包括 config server 和 config client 两部分。 * 服务端:在启动类上添加注解 @EnableConfigServer,声明这是一个config server(config 服务端)。 * 客户端:向 config server 中心注册。 下图是服务端和客户端相关配置: 这样配置后就可以实现每个微服务的配置可以统一从config server中读取,同时可以对一些重要的私密数据加密处理。

大家也许会想到如果config server中的配置文件发生改变怎么办?最初的办法就是改完配置文件后重启config server和config client,这样说可以但是繁琐、复杂。解决办法就是使用 spring cloud bus 自动刷新配置,这样就不用重启工程实现不停机刷新配置文件。 * 使用 spring cloud bus 会用到 RabbitMQ、Kafaka 消息中间件,在本文工程用了 RabbitMQ,RabbitMQ 不清楚是什么自行了解。细心的人在上图就已经发现了里面早就整合 spring cloud bus了。 * 变动的配置文件修改后提交到git上,在config server 执行 http://localhost:8888/actuator/bus-refresh(必需是post请求) 就可以实现其它使用这个配置文件的服务现实配置文件动态更新。

工程代码 config-server 对应服务端、 admin 对应客户端,自行去查看更详细配置。admin工程是读取config-server工程中admin-server-dev.yml 配置文件,如下图

config_分布式配置中心.txt · Last modified: 2023/03/08 16:09 by xujianglong