第 12 章 分离消息和分割消息流
在 AMQ Broker 中,您可以配置名为 par rts 的对象,以便您以透明的方式将信息从一个地址转移到另一个地址,而无需更改任何客户端应用程序逻辑。您还可以将消息 的副本 转发到指定的转发地址,从而有效地分割消息流。
12.1. 消息划分方式
通过导航信息,您可以透明地将消息重新定向到其他地址,而不更改任何客户端应用程序逻辑。把一个代理服务器分离为消息的路由表类型。
分化器可以 独占 的,即消息被转移到指定的转发地址,而不会进入其原始地址。
条带化也可以是 非排除的,这意味着,一条信息将继续进入其原始地址,而代理会将消息的副本发送到指定的转发地址。因此,您可以为拆分消息流使用非排除的导航。例如,如果您想要单独监控一个订购队列的每个顺序,您可以分割消息流。
当地址同时配置了独占的分项和非排除条时,代理首先会处理独占的差异。如果已经通过独占的分离出了特定的消息,则代理不会处理该消息的任何非排除差别。在这种情况下,消息永远不会指向原始地址。
当代理分离一个消息时,代理会分配新的消息 ID,并将消息地址设置为新的转发地址。您可以通过 _AMQ_ORIG_ADDRESS
(字符串类型)和 _AMQ_ORIG_MESSAGE_ID
(长类型)消息属性来检索原始消息 ID 和地址值。如果您使用 Core API,请使用 Message.HDR_ORIGINAL_ADDRESS
和 Message.HDR_ORIG_MESSAGE_ID
属性。
您只能将消息重新定向到同一代理服务器上的地址。如果要分入不同服务器上的地址,常用的解决方案是首先将消息重新定向至本地存储和转发队列。然后,设置从该队列使用的网桥,并将消息转发到不同代理上的地址。通过将分制与网桥相结合,您可以在地理分布代理服务器之间创建分布式路由连接网络。这样,您可以创建一个全局消息传递网格。