4.5. 为点对点和发布订阅消息传递配置地址
您还可以使用点对 点 和发布订阅语义配置地址。
通常不 建议配置使用点对点和发布订阅语义的地址。但是,当您想要名为 Order 的 JMS 队列 和
JMS 主题也称为 Order 时,它 很有用 。
不同的路由类型使地址似乎与客户端连接不同。在这种情形中,JMS 队列制作者发送的消息使用 anycast
路由类型。JMS 主题制作者发送的消息使用 多播
路由类型。当 JMS 主题消费者连接到代理时,它将附加到其自身的订阅队列。但是,JMS 队列使用者附加到 anycast
队列。
下图显示了一起使用的点对点和发布订阅消息传递的示例。
以下步骤演示了如何为点对点和发布订阅消息传递配置地址。
这种情况下的行为取决于所使用的协议。对 JMS 而言,主题和队列制作者和使用者之间存在明显区别,这使得逻辑非常简单。AMQP 等其他协议不做出这种区分。通过 AMQP 发送的消息由 任何广播和
以及消费者默认路由到 多播
anycast
。如需更多信息,请参阅 第 3 章 在网络连接中配置消息传递协议。
流程
-
打开
<broker_instance_dir>/etc/broker.xml
配置文件。 将
anycast
配置元素周围的 address 元素包装到address
元素中。例如:
<configuration ...> <core ...> ... <address name="orders"> <anycast> <queue name="orders"/> </anycast> </address> </core> </configuration>
向地址添加空
多播
配置元素。<configuration ...> <core ...> ... <address name="orders"> <anycast> <queue name="orders"/> </anycast> <multicast/> </address> </core> </configuration>
注意通常,代理会根据需要创建订阅队列,因此不需要列出
多播
元素中的特定队列元素。