面试题答案
一键面试基本原理
- 消息总线机制:Spring Cloud 控制总线基于消息代理(如 RabbitMQ、Kafka 等)构建。它利用消息队列的发布 - 订阅模式,将配置更新的消息广播到各个微服务实例。
- 配置中心集成:与 Spring Cloud Config 等配置中心紧密结合。当配置中心的配置发生变化时,通过控制总线可以通知所有相关的微服务去更新配置。
- 动态刷新:微服务实例监听控制总线上的配置更新消息,接收到消息后,触发自身配置的动态刷新,而无需重启服务。
工作流程
- 配置更改:开发人员在配置中心(如 Spring Cloud Config Server)修改配置文件,并提交更改。
- 事件触发:配置中心检测到配置文件的变化,向控制总线(如 RabbitMQ)发送一个配置更新的消息。这个消息包含了配置更改的相关信息,如配置文件的版本号、变更内容等。
- 消息广播:消息代理(如 RabbitMQ)接收到配置更新消息后,按照发布 - 订阅模式,将该消息广播到所有订阅了该主题(通常与配置更新相关的主题)的微服务实例。
- 实例监听与更新:各个微服务实例启动时,会在控制总线上订阅配置更新的主题。当接收到配置更新消息后,微服务实例调用 Spring Cloud 提供的配置刷新接口(如
@RefreshScope
注解配合RefreshEndpoint
),重新从配置中心拉取最新的配置,并应用到自身,完成配置的动态更新。