ActiveMQ:如何平衡多个Message Broker实例的负载?

时间:2013-11-25 16:18:24

标签: java activemq messaging

刚刚浏览了这些文档:

  • http://activemq.apache.org/failover-transport-reference.html< --- 据我所知,故障转移允许生产者和消费者仅在第一个队列变得不可用时生成/使用辅助队列,并在它再次返回时立即返回到主要队列。这种行为绝对不是负载平衡。
  • http://activemq.apache.org/networks-of-brokers.html< ---它们提供了一些方法,可以在那里跨多个Broker实例复制消息。如果一个发生故障,客户端可以自动故障转移到已经拥有所有消息的从站,因此每条消息都具有高可用性。但这不是我所期待的。

那么,是否可以配置Consumer和Producer应用程序来连接和平衡多个代理实例之间的负载(循环或类似方式)?

1 个答案:

答案 0 :(得分:1)

这就是存储和转发模式中的network of brokers设计为... queues are distributed进行负载均衡(注意:这不是HA;但是如果代理发生故障,它会消息被卡在消息存储区中,直到代理重新启动,需要HA的主/从

  

如果我们在A上的队列中有代理A,B,C和发布者。如果我们在A和B上的队列中有消费者,那么队列的消息将分散在代理A和B上;一些消息转到B,一些消息在A上消耗,没有消息转到C.如果队列中的消费者启动   在C上,然后消息也会流到那里。如果消费者停止,那么将不再向C发送消息。