发布/预订网络中的代理预订
代理预订是一个队列管理器为另一个队列管理器上发布的主题所作的预订。 代理预订会针对预订所预订的每一个主题字符串在队列管理器间流动。 您无需明确创建代理预订,队列管理器会替您执行此操作。
您可以将队列管理器一起连接到发布/预订集群或发布/预订层次结构中。 代理预订在已连接的队列管理器之间流动。 代理预订导致连接到一个队列管理器的发布程序创建的主题的发布由连接到其他队列管理器的该主题的订户接收。 参见分布式发布/订阅网络。
在具有针对各个主题字符串的数千个预订的发布/预订拓扑中,或者在这些预订的存在可能快速变化的情况下,必须考虑代理预订传播的开销。 除了本主题的其余部分中描述的自动聚集外,您还可以进行手动配置更改,以进一步限制已连接队列管理器之间的代理预订和发布流,并减少等待代理预订传播到所有已连接队列管理器的等待时间。 请参阅 发布/预订网络中的预订性能。
代理预订不包含本地预订所使用的任何选择器,并且可以简化包含通配符的预订主题字符串。 这可能会导致发布与实际预订不匹配的代理预订相匹配,从而在队列管理器之间产生额外的发布流。 托管预订的队列管理器会过滤掉此类差异,以便不会将其他发布返回给预订。
代理预订聚集
使用重复消除系统聚集代理预订。 对于特定的已解析主题字符串,将在第一个本地预订或接收到的代理预订上发送代理预订。 对同一主题字符串的后续预订将使用此现有代理预订。
在取消最后一个本地预订或接收到的代理预订之后,将取消该代理预订。
发布聚集
当队列管理器上存在对同一主题字符串的多个预订时,仅从发布/预订拓扑中的其他队列管理器发送与该主题字符串匹配的每个发布的单个副本。 消息到达时,本地队列管理器会将消息的副本传递到每个匹配的预订。
当代理预订包含通配符时,可以有多个代理预订与单个发布的主题字符串匹配。 如果在与单个已连接队列管理器创建的两个或多个代理预订相匹配的队列管理器上发布消息,那么仅会将该发布的一个副本转发到远程队列管理器以满足多个代理预订。