对实例进行寻址

应用程序的每个实例都有一个服务 ID,可以使用其值进行设置,其值应为以冒号分隔的 标识符,按从最不具体到最具体的顺序排列。默认值为 从环境构造为 和 (或 ,如果设置了)。ID 的默认值为 以 的形式构造,其中:spring.cloud.bus.idspring.application.nameserver.portspring.application.indexapp:index:idSpring中文文档

  • app是 ,如果存在,或者vcap.application.namespring.application.nameSpring中文文档

  • index是 ,如果存在,则为 ,,,或(按此顺序)。vcap.application.instance_indexspring.application.indexlocal.server.portserver.port0Spring中文文档

  • id是 ,如果它存在,或者是一个随机值。vcap.application.instance_idSpring中文文档

HTTP 端点接受“目标”路径参数,例如 ,其中 是服务 ID。如果 ID 由总线上的实例拥有,它处理消息和所有其他实例 忽略它。/busrefresh/customers:9000destinationSpring中文文档

对服务的所有实例进行寻址

“destination”参数用于 Spring (带有路径分隔符 作为冒号 — ) 来确定实例是否处理消息。使用示例 从前面开始,针对 “客户”服务,而不考虑服务 ID 的其余部分。PathMatcher:/busenv/customers:**Spring中文文档

服务 ID 必须是唯一的

总线会尝试两次来消除对事件的处理 - 一次来自原始事件,一次来自队列。为此,它会检查发送服务 ID 针对当前服务 ID。如果一个服务的多个实例具有相同的 ID, 不处理事件。在本地计算机上运行时,每个服务都位于不同的 port,该端口是 ID 的一部分。 Cloud Foundry 提供了一个用于区分的索引。 要确保 ID 在 Cloud Foundry 外部是唯一的,请设置为 对于服务的每个实例,它们都是唯一的。ApplicationEventspring.application.indexSpring中文文档