4.5. 为点到点和发布订阅消息传递配置地址
您还可以使用点到点 和发布 订阅语义配置地址。
通常不建议将地址配置为同时使用点到点和发布订阅模式。但是,如果需要,它可能会有用。例如,一个名为 orders
的 JMS 队列,以及名为 order
的 JMS 主题。不同的路由类型使地址因客户端连接而异。在这种情况下,由 JMS 队列生成者发送的消息使用 anycast
路由类型。JMS 主题生成者发送的消息使用 multicast
路由类型。当 JMS 主题使用者连接到代理时,它将附加到自己的订阅队列。但是,JMS 队列消费者附加到 anycast
队列。
下图显示了同时使用的点对点和发布-订阅消息传递的示例。
图 4.4. 点到点和发布订阅消息传递
以下流程演示了如何为点到点和发布订阅消息传递配置地址。
这种情境的行为取决于所使用的协议。对于 JMS,主题和队列生成者和消费者之间有明确区分,这让逻辑直接变得简单。AMQP 等其他协议不会区分此区别。通过 AMQP 发送的消息以 anycast
和 multicast
路由,消费者默认为 anycast
。更多信息请参阅 第 3 章 在网络连接中配置消息传递协议。
流程
-
打开 &
lt;broker_instance_dir> /etc/broker.xml
配置文件。 使用在
address
项中的queue
项环绕一个anycast
配置项。例如:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 向地址添加一个空的
multicast
配置元素。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意通常,代理会根据需要创建订阅队列,因此不需要列出
multicast
元素中的特定队列元素。