对于最新的稳定版本,请使用 spring-cloud-bus 4.3.0spring-doc.cadn.net.cn

寻址实例

寻址实例

应用程序的每个实例都有一个服务 ID,其值可以使用spring.cloud.bus.id其值应为冒号分隔的列表 标识符,按从最不具体到最具体的顺序排列。默认值为 从环境中构建为spring.application.nameserver.port(或spring.application.index,如果设置)。ID 的默认值为 以app:index:id哪里:spring-doc.cadn.net.cn

  • appvcap.application.name,如果存在,或spring.application.namespring-doc.cadn.net.cn

  • indexvcap.application.instance_index,如果存在,spring.application.index,local.server.port,server.port0(按此顺序)。spring-doc.cadn.net.cn

  • idvcap.application.instance_id,如果存在,或随机值。spring-doc.cadn.net.cn

HTTP 端点接受“目标”路径参数,例如/busrefresh/customers:9000哪里destination是服务 ID。如果 ID 由总线上的实例拥有,它处理消息和所有其他实例 忽略它。spring-doc.cadn.net.cn

寻址服务的所有实例

“destination”参数用于 SpringPathMatcher(使用路径分隔符 作为冒号——:) 来确定实例是否处理消息。使用示例 从前面开始,/busenv/customers:**针对 “customers”服务,无论服务 ID 的其余部分如何。spring-doc.cadn.net.cn

服务 ID 必须是唯一的

总线尝试两次消除处理事件 - 一次来自原始事件ApplicationEvent从队列中抽出一次。为此,它会检查发送服务 ID 与当前服务 ID 相比。如果服务的多个实例具有相同的 ID, 事件不会被处理。在本地计算机上运行时,每个服务都位于不同的 port 中,并且该端口是 ID 的一部分。Cloud Foundry 提供了一个索引来区分。 要确保 ID 在 Cloud Foundry 之外是唯一的,请将spring.application.index自 服务的每个实例都是唯一的。spring-doc.cadn.net.cn