此版本仍在开发中,尚不被认为是稳定的。对于最新的稳定版本,请使用 spring-cloud-bus 4.3.0! |
寻址实例
寻址实例
应用程序的每个实例都有一个服务 ID,其值可以使用spring.cloud.bus.id
其值应为冒号分隔的列表
标识符,按从最不具体到最具体的顺序排列。默认值为
从环境中构建为spring.application.name
和server.port
(或spring.application.index
,如果设置)。ID 的默认值为
以app:index:id
哪里:
-
app
是vcap.application.name
,如果存在,或spring.application.name
-
index
是vcap.application.instance_index
,如果存在,spring.application.index
,local.server.port
,server.port
或0
(按此顺序)。 -
id
是vcap.application.instance_id
,如果存在,或随机值。
HTTP 端点接受“目标”路径参数,例如/busrefresh/customers:9000
哪里destination
是服务 ID。如果 ID
由总线上的实例拥有,它处理消息和所有其他实例
忽略它。
寻址服务的所有实例
“destination”参数用于 SpringPathMatcher
(使用路径分隔符
作为冒号——:
) 来确定实例是否处理消息。使用示例
从前面开始,/busenv/customers:**
针对
“customers”服务,无论服务 ID 的其余部分如何。
服务 ID 必须是唯一的
总线尝试两次消除处理事件 - 一次来自原始事件ApplicationEvent
从队列中抽出一次。为此,它会检查发送服务 ID
与当前服务 ID 相比。如果服务的多个实例具有相同的 ID,
事件不会被处理。在本地计算机上运行时,每个服务都位于不同的
port 中,并且该端口是 ID 的一部分。Cloud Foundry 提供了一个索引来区分。
要确保 ID 在 Cloud Foundry 之外是唯一的,请将spring.application.index
自
服务的每个实例都是唯一的。