14.4.2. 配置消息重新发布
此流程演示了如何通过负载平衡配置消息重新发布。如果您希望在没有负载均衡的情况下重新发布消息,请将 <message-load-balancing>
设置为 OFF_WITH_REDISTRIBUTION
。
流程
-
打开
<broker_instance_dir>/etc/broker.xml
配置文件。 在
<cluster-connection>
元素中,验证<message-load-balancing>
是否已设置为ON_DEMAND
。<configuration> <core> ... <cluster-connections> <cluster-connection name="my-cluster"> ... <message-load-balancing>ON_DEMAND</message-load-balancing> ... </cluster-connection> </cluster-connections> </core> </configuration>
在
<address-settings>
元素中,为队列或队列集设置重新发布延迟。在本例中,平衡到
my.queue
的消息将在最后一个消费者关闭后重新分发 5000 毫秒。<configuration> <core> ... <address-settings> <address-setting match="my.queue"> <redistribution-delay>5000</redistribution-delay> </address-setting> </address-settings> ... </core> </configuration>
address-setting
-
将
match
属性设置为您要重新分发消息的队列的名称。您可以使用代理通配符语法来指定队列范围。如需更多信息,请参阅 第 4.2 节 “将地址设置应用到一组地址”。 redistribution-delay
-
代理在此队列最终消费者关闭后应等待的时间(以毫秒为单位),然后再将消息重新分发到集群中的其他代理。如果将其设置为
0
,消息将立即重新分发。但是,您通常应该在重新分发前设置延迟 - 用户通常会关闭另一个延迟,但在同一队列中可以快速创建另一个延迟。
- 对集群中的每个额外代理重复此步骤。
其它资源
-
有关重新分发消息的代理集群配置示例,请查看
queue-message-redistribution
AMQ Broker 示例程序。