4.5. 为点到点和发布订阅消息配置地址
您还可以使用点对点 和发布 与订阅语义配置地址。
通常不建议配置使用点到点和发布与发布与发布相关的语义的地址。但是,当您想要时,它很有用,例如,名为 order 的 JMS 队列,以及名为 order 的 JMS 主题。
不同的路由类型使地址在客户端连接上显示不同。在这种情况下,JMS 队列制作者发送的消息使用任何广播
路由
类型。由 JMS 主题制作者发送的消息使用 多播路由
类型。当 JMS 主题消费者连接到代理时,它将附加到自己的订阅队列。但是,JMS 队列消费者附加到任何广播 队列
。
下图显示了共同使用的点对点和发布订阅消息示例。
以下步骤演示了如何为点对点和发布订阅消息传递配置地址。
注意
这种情境的行为取决于所使用的协议。对于 JMS,主题和队列制作者和消费者之间有明确的区别,因此逻辑简单明了。AMQP 等其他协议没有这种区别。通过 AMQP 发送的消息默认被 任何
广播
和消费者 路由
。如需更多信息,请参阅 第 3 章 网络连接:协议。
步骤
-
打开
<broker-instance-dir>/etc/broker.xml
配置文件。 围绕
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>
注意通常,代理根据需要创建订阅队列,因此不需要列出
多播
元素内的特定队列元素。