Spring Cloud Bus
4.2.0
章节总结
📄️ 总线端点
Spring Cloud Bus 提供了三个端点,分别是 /actuator/busrefresh、/actutator/busshutdown 和 /actuator/busenv,它们分别对应于 Spring Cloud Commons 中的各个执行器端点 /actuator/refresh、/actuator/shutdown 和 /actuator/env。
📄️ 处理实例
应用程序的每个实例都有一个服务 ID,其值可以通过 spring.cloud.bus.id 设置,并且该值应为一个由冒号分隔的标识符列表,按从最不具体到最具体的顺序排列。默认值是根据环境构造的,结合了 spring.application.name 和 server.port(如果设置了 spring.application.index,则使用它)。ID 的默认值以 app:index:id 的形式构造,其中:
📄️ 配置
Spring Cloud Bus 使用 Spring Cloud Stream 来广播消息。因此,要让消息流动起来,你只需要在类路径中包含你选择的绑定器实现即可。对于使用 AMQP(RabbitMQ)和 Kafka 的总线,有方便的启动器(spring-cloud-starter-bus-\[amqp|kafka])。一般来说,Spring Cloud Stream 依赖于 Spring Boot 的自动配置约定来配置中间件。例如,可以通过 spring.rabbitmq.* 配置属性来更改 AMQP 代理地址。Spring Cloud Bus 在 spring.cloud.bus.* 中有一些原生配置属性(例如,spring.cloud.bus.destination 是用作外部中间件的主题名称)。通常情况下,默认值就足够了。
📄️ 自定义事件
Bus 可以承载任何类型为 RemoteApplicationEvent 的事件。默认的传输格式是 JSON,反序列化器需要提前知道要使用的类型。要注册一个新类型,必须将其放在 org.springframework.cloud.bus.event 的子包中。