ActiveMQ并随机化

时间:2012-09-28 22:25:13

标签: activemq broker

假设我有以下ActiveMQ连接字符串:

故障切换:(TCP:// BROKER1:61616,TCP:// broker2:61616)?随机=真

我正从具有此配置的Java生产者向经纪人发送数千个请求。

有时我注意到所有消息最终都只发送到1个代理,而另一个消息没有收到任何消息。

这是正常行为吗?

在10次测试中,我发现我可能已经注意过这种行为了几次。而在其他时候,经纪人都收到了消息。

randomize = true如何运作?

我在http://activemq.apache.org/failover-transport-reference.html上找到的唯一解释是:“使用随机算法从提供的列表中选择用于重新连接的URI”

1 个答案:

答案 0 :(得分:0)

故障转移传输上的randomize标志表明传输应随机选择一个已配置的代理URI连接到(在您的情况下有两个可供选择。一旦客户端连接到其中一个代理客户端将保持愉快的连接并仅向该代理发送消息,直到某些事情发生中断连接为止。一旦连接中断,客户端将再次尝试连接到这两个代理中的一个。所以在你的情况下,单个生产者发送所有它给一个经纪人的消息意味着,它的工作方式就像它预期的一样。