【问题标题】:ActiveMQ - network of multiple brokers configurationActiveMQ - 多个代理网络配置
【发布时间】:2011-07-24 19:58:02
【问题描述】:

我正在尝试在网络中设置三个代理以实现负载平衡——客户端和生产者可以连接到这些代理中的任何一个。

问题:

  1. 推荐使用什么拓扑来连接这些代理?更具体地说,在每个代理上使用的 networkConnector 配置是什么?应该启用双工设置吗? (我猜双工设置取决于我们选择的拓扑)

    A->B->C->A     或    ABCA

  2. 客户端应该使用故障转移协议连接到这些代理,对吗?例如故障转移://(tcp://b1:6161, tcp://b2:6161, tcp://b3:6161)

  3. 在重新启动的情况下,客户端是否需要处理任何重复的消息?见http://forum.springsource.org/showthread.php?108461-Failover-issue-in-ActiveMQ——不清楚为什么这里存在重复消息问题

  4. 理想情况下,我们希望设置拓扑,如本文http://edelsonmedia.com/?p=143 所示——不清楚如何在主服务器和从服务器上设置 networkConnector。

【问题讨论】:

    标签: activemq


    【解决方案1】:

    1.) 我实际上无法推荐拓扑。此选择取决于您可以接受的跃点数(消息进入集群的代理和消费者连接的代理之间)。在高流量场景中,每一跳都会增加网络负载。 在我的公司中,我们使用超立方体网络(每个经纪人都知道其他经纪人)并且效果很好。

    一般来说,您应该确保您的节点配置尽可能相似。使用双工可确保您配置的连接更少(因为从 B 到 A 的连接已经是从 A 到 B 的双工连接的一部分),但它会在您的配置文件中引入大量差异。

    我个人为 ActiveMQ 创建了自己的启动脚本,该脚本根据集群的 dns 名称(mycluster-01 到 06)自动生成连接配置。

    2.) 是的。如果您想确保客户端使用列表中的第一个条目,您可能需要添加 ?randomize=false。

    3.) 如果在消息传输过程中出现故障或在重负载期间出现竞争条件,则可能会出现重复条目​​。一般来说,一条消息只属于一个代理。

    4.) 不要在主机和从机之间设置网络连接器(真的不要)。使用activeMQ的纯主从特性,为每个从属配置主从(你不必在主控上配置任何东西)。对于所有 Master 配置 NetworkConnections 到其他 Master 并故障转移到他们的从属) http://activemq.apache.org/pure-master-slave.html

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-01-04
      • 2010-11-30
      • 2012-02-17
      • 2012-10-28
      • 1970-01-01
      • 1970-01-01
      • 2015-03-11
      • 1970-01-01
      相关资源
      最近更新 更多