第10课:消息总线

删除回忆录丶 提交于 2020-10-05 07:44:04

其实在上一课我们已经接触过了消息总线,那就是 Spring Cloud Bus,这一课我们将继续深入研究 Spring Cloud Bus 的一些特性。

局部刷新

Spring Cloud Bus 用于实现在集群中传播一些状态变化(例如:配置变化),它常常与 Spring Cloud Config 联合实现热部署。上一课我们体验了配置的自动刷新,但每次都会刷新所有微服务,有些时候我们只想刷新部分微服务的配置,这时就需要通过 /bus/refresh 断点的 destination 参数来定位要刷新的应用程序。

它的基本用法如下:

/bus/refresh?destination=application:port

其中,application 为各微服务指定的名字,port 为端口,如果我们要刷新所有指定微服务名字下的配置,则 destination 可以设置为 application:例如:/bus/refresh/destination=eurekaclient:,代表刷新所有名字为 EurekaClient 的微服务配置。

改进架构

在前面的示例中,我们是通过某一个微服务的 /bus/refesh 断点来实现配置刷新,但是这种方式并不优雅,它有以下弊端:

  1. 破坏了微服务的单一职责原则,微服务客户端理论上应只关注自身业务,而不应该负责配置刷新。
  2. 破坏了微服务各节点的对等性。
  3. 有一定的局限性。在微服务迁移时,网络地址时常会发生改变,这时若想自动刷新配置
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!