-
springcloud15:config配置中心+Bus消息总线
- Config分布式配置中心
config是干什么的?
面临问题:统一配置中心,如四个微服务都会访问数据库,我们需要统一配置四个微服务的数据库连接的配置。
configServer来解决这个问题 - 提供了集中化的外部配置支持,提供了中心化的外部配置(local git repository)
分为服务端和客户端
服务端负责提供配置信息,客户端获取配置信息 - 搭建分布式配置中心
启动分布式配置中心然后获取配置文件
可以通过访问server来获取github上的配置内容
此时客户端如何访问配置中心的配置?
bootstrap是系统级的,优先级高与application.yml,是去外部获取一个配置文件
成功实现了客户端访问服务端通过github配置文件
动态刷新问题?
修改github的配置文件,此时服务端访问可以立即拿到修改的,而客户端仍然会拿到以前旧的配置文件(除非重启)重启很难受。
解决动态刷新问题:
加入配置和注解(解决动态刷新问题)
需要运维人员去刷新3355 actuator/refresh
有多个服务,可否广播通知?大范围的自动刷新?实现差异化自动管理? - Bus消息总线(支持springcloud消息总线)
能够管理和传播分布式系统的消息
广播的自动刷新,有一个公用的消息主题,该主题产生的消息会被所有实例监听和消费
RabbitMQ环境配置 - 两种配置
第一种:利用消息总线触发一个客户端的刷新操作,然后刷新所有客户端的配置(通知一个客户端然后通知其他)
第二种:利用消息总线触发一个服务端server的刷新操作而刷新所有客户端的配置(configServer广播)
第一种破坏了单一性,微服务本身是业务模块
第一种破坏了服务之间的对等性
故使用第二种涉及思想 - 具体编码
服务端增加Bus的依赖
yml修改
客户端做对应的修改
修改文件,只需要发送请求刷新3344,则全部生效
curl -X post “http://localhost:3344/actuator/bus-refresh” - 动态刷新的定点通知
精确打击,定点刷新(只通知一个客户端)
直接在发送请求中加入一个destination参数即可
curl -X post “http://localhost:3344/actuator/bus-refresh/config-client:3355”
-
相关阅读:
vim中粘贴代码片段出现每行新增缩进的解决方法-set paste
以太坊的最全概念攻略分享与案例分享|猿创征文
用动图详细讲解——栈
JSON和全局异常处理
gRPC 应用指引
java网络编程Socket output is already shutdown
扯什么kafka顺序消费,然后呢?古尔丹,代价是什么
UI设计原则背后的认知心理学 优漫动游
MySQL数据库——索引(2)-B+Tree、Hash结构,索引分类(聚集索引、二级索引)
全智V5+AXP233电源管理芯片调试
-
原文地址:https://blog.csdn.net/qq_44724899/article/details/128022631