概述
架构改进
在前面的示例中,我们通过请求某个微服务的/bus/refresh端点的方式来实现配置刷新,但这种方式并不优雅。原因如下:
(1) 打破了微服务的职责单一性。微服务本身是业务模块,它本不应该承担配置刷新的职责。
(2) 破坏了微服务各节点的对等性。
(3) 有一定的局限性。例如,微服务在迁移时,它的网络地址常常会发生变化,此时如果想要做到自动刷新,那就不得不修改WebHook的配置。
我们不妨改进一下我们的架构。
图9-4 使用Spring Cloud Bus的架构图
如图9-4,我们将Config Server也加入到消息总线中,并使用Config Server的/bus/refresh端点来实现配置的刷新。这样,各个微服务只需要关注自身的业务,而不再承担配置刷新的职责。代码详见 microservice-config-server-refresh-cloud-bus 。