|
该版本仍在开发中,尚未被视为稳定。对于最新稳定版本,请使用 spring-cloud-bus 5.0.0! |
寻址实例
寻址实例
每个应用程序实例都有一个服务 ID,其值可以设置为spring.cloud.bus.id其值预期为一个冒号分隔的列表
标识符,按最不具体到最具体的顺序排列。默认值为
由环境构成,作为spring.application.name和server.port(或spring.application.index,如果设定)。ID的默认值为
以 形式构造为应用:索引:ID哪里:
-
应用程序是vcap.application.name,如果存在,或者spring.application.name -
指数是vcap.application.instance_index,如果存在,spring.application.index,local.server.port,server.port或0(按此顺序) -
身份证是vcap.application.instance_id,如果存在,或者随机值。
HTTP 端点接受“目的”路径参数,例如/busrefresh/客户:9000哪里目的地是一个服务ID。如果 ID
由总线上的实例拥有,它处理消息以及所有其他实例
忽略它。
处理服务的所有实例
“目标”参数用于Spring路径匹配器(带有路径分隔符
作为一名科隆——:)以确定实例是否处理该消息。以示例为例
之前,/busenv/customers:**针对所有
“客户”服务,不管服务ID的其他部分如何。
服务ID必须是唯一的
总线尝试两次消除处理事件——一次是从原始事件中剔除ApplicationEvent还有一次是排队的。为此,它会检查发送服务ID
与当前的服役ID相较。如果服务的多个实例具有相同的 ID,
事件不会被处理。在本地机器上运行时,每个服务运行在不同的设备上
端口,而该端口是ID的一部分。Cloud Foundry提供一个索引来区分。
为了确保 ID 在 Cloud Foundry 之外是唯一的,设为spring.application.index自
为每个服务实例设计独特的东西。