ActiveMQ和随机化

ActiveMQ和随机化,activemq,broker,Activemq,Broker,假设我有以下ActiveMQ连接字符串: 故障转移:(tcp://broker1:61616,tcp://broker2:61616)?随机化=真 我从一个具有这种配置的Java生产者那里向代理发送了数千个请求 有时我注意到,所有消息最终只发送到一个代理,而另一个代理没有接收到一条消息 这是正常的行为吗 在10次测试中,我做了几次测试,我可能已经注意到了这种行为。在其他时候,两个经纪人都收到了信息 randomize=true如何工作 我在上面找到的唯一解释是:“使用随机算法从提供的列表中选择用

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

故障转移:(tcp://broker1:61616,tcp://broker2:61616)?随机化=真

我从一个具有这种配置的Java生产者那里向代理发送了数千个请求

有时我注意到,所有消息最终只发送到一个代理,而另一个代理没有接收到一条消息

这是正常的行为吗

在10次测试中,我做了几次测试,我可能已经注意到了这种行为。在其他时候,两个经纪人都收到了信息

randomize=true如何工作


我在上面找到的唯一解释是:“使用随机算法从提供的列表中选择用于重新连接的URI”

故障转移传输上的随机标记指示传输应随机选择一个配置的代理URI进行连接(在您的情况下,有两种可供选择。一旦客户机连接到其中一个代理,客户机将保持愉快的连接,并仅向该代理发送消息,直到连接发生中断。一旦连接中断,客户机将再次尝试连接到这两个代理中的一个。因此在您的情况下,单一制作人将其所有消息发送给一个代理,这意味着它的工作也与预期一样。

谢谢@Tim Bish的快速响应。有没有办法将负载分配给两个代理,以便一个代理不接收所有消息?我认为使用“randomize=true”正如您提到的,只要没有中断或连接问题,客户端将使用它连接到的代理。请查看ApacheCamel,特别是负载平衡器。