自定义 Message Broker

Spring Cloud Bus 使用 Spring Cloud Stream 来 广播消息。因此,要使消息流动,您只需要包含活页夹 在类路径中实现您选择的实现。巴士上有方便的启动器 使用 AMQP (RabbitMQ) 和 Kafka ()。一般 说起来,Spring Cloud Stream 依赖于 Spring Boot 自动配置约定 配置中间件。例如,可以使用配置属性更改 AMQP 代理地址。Spring Cloud Bus 有一些 中的本机配置属性(例如,是要用作外部的主题的名称 中间件)。通常,默认值就足够了。spring-cloud-starter-bus-[amqp|kafka]spring.rabbitmq.*spring.cloud.bus.*spring.cloud.bus.destinationSpring中文文档

要了解有关如何自定义消息代理设置的更多信息,请参阅 Spring Cloud 流式传输文档。Spring中文文档

跟踪总线事件

总线事件(子类)可以通过设置 来跟踪。如果这样做,Spring Boot(如果存在)会显示发送的每个事件以及每个服务实例的所有确认。这 以下示例来自终结点:RemoteApplicationEventspring.cloud.bus.trace.enabled=trueTraceRepository/traceSpring中文文档

{
  "timestamp": "2015-11-26T10:24:44.411+0000",
  "info": {
    "signal": "spring.cloud.bus.ack",
    "type": "RefreshRemoteApplicationEvent",
    "id": "c4d374b7-58ea-4928-a312-31984def293b",
    "origin": "stores:8081",
    "destination": "*:**"
  }
  },
  {
  "timestamp": "2015-11-26T10:24:41.864+0000",
  "info": {
    "signal": "spring.cloud.bus.sent",
    "type": "RefreshRemoteApplicationEvent",
    "id": "c4d374b7-58ea-4928-a312-31984def293b",
    "origin": "customers:9000",
    "destination": "*:**"
  }
  },
  {
  "timestamp": "2015-11-26T10:24:41.862+0000",
  "info": {
    "signal": "spring.cloud.bus.ack",
    "type": "RefreshRemoteApplicationEvent",
    "id": "c4d374b7-58ea-4928-a312-31984def293b",
    "origin": "customers:9000",
    "destination": "*:**"
  }
}

前面的跟踪显示 a 是从 广播到所有服务发送的,并由 和 接收(确认)。RefreshRemoteApplicationEventcustomers:9000customers:9000stores:8081Spring中文文档

要自行处理 ack 信号,您可以将 for 和 类型添加到您的应用(并启用 跟踪)。或者,您可以利用并从中挖掘数据 那里。@EventListenerAckRemoteApplicationEventSentApplicationEventTraceRepositorySpring中文文档

任何总线应用程序都可以跟踪确认。然而,有时,它是 在可以执行更复杂操作的中央服务中执行此操作很有用 查询数据或将其转发到专门的跟踪服务。
任何总线应用程序都可以跟踪确认。然而,有时,它是 在可以执行更复杂操作的中央服务中执行此操作很有用 查询数据或将其转发到专门的跟踪服务。