4.10. 配置分片队列
跨队列处理消息的一种常见模式是使用 队列分片。这意味着您定义一个充当单一逻辑队列的 任播
地址,但受到许多底层物理队列的支持。
流程
-
打开
<broker_instance_dir>/etc/broker.xml
配置文件。 添加
address
元素并设置name
属性。例如:<configuration ...> <core ...> ... <addresses> <address name="my.sharded.address"></address> </addresses> </core> </configuration>
添加
anycast
路由类型,并包含所需的分片队列数。在以下示例中,队列q1、q
2
和q3
添加为任播
目的地。<configuration ...> <core ...> ... <addresses> <address name="my.sharded.address"> <anycast> <queue name="q1" /> <queue name="q2" /> <queue name="q3" /> </anycast> </address> </addresses> </core> </configuration>
根据上述配置,发送到 my.sharded.address
的消息在 q1、q
2
和 q3
之间均匀分布。当使用完全限定队列名称(FQQN)时,客户端可以直接连接到特定的物理队列。并且仅接收发送到该特定队列的消息。
要将特定消息绑定到特定队列,客户端可以为每个消息指定消息组。broker 将消息分组到同一队列,一个消费者对其进行全部处理。
其它资源
有关以下的更多信息:
- 完全限定队列名称请参考 第 4.9 节 “指定完全限定队列名称”
- 消息分组,请参阅 AMQ Core Protocol JMS 文档中的 使用消息组。