【问题标题】:Load balancing MessageQ (ActiveMQ)负载均衡 MessageQ (ActiveMQ)
【发布时间】:2015-02-09 09:05:48
【问题描述】:

这是我的场景..

1) 基于 REST 的 Web 服务(例如 X)接收请求并将其放入 ActiveQ 2) Q 的另一端有一个监听器,它将读取和处理消息。这是异步的

我决定使用 ActiveMQ。 但试图找到一个解决方案,让我可以 Q 和 Q 侦听器可扩展。

1) 我有很多 X 实例正在运行。因此,Q 有多个刺激因素。 2)订购对我很重要。 3) 由于我的 REST 服务是会话较少的,我没有办法用相同的消息 ID 标记一堆请求。 4)现在,如果我使用单个 Q,它可以正常工作..

但我想扩大规模并使用多个 Q 和多个 Q 消费者而不影响订单。

有人可以建议我解决这个问题吗?

非常感谢,

【问题讨论】:

    标签: asynchronous activemq message-queue


    【解决方案1】:

    为了实现消息的排序,activeMQ 中定义了两种方式

    1)基于 JMSXGroupID 的消息组

    2)独家消费者

    消息组比独占消费者更有用,因为在内部独占消费者一次只使用一个消费者,但如果该消费者失败,它会连接到其他消费者。

    您可以在此处阅读 ActiveMQ 文档

    希望这会有所帮助! 祝你好运!

    【讨论】:

      【解决方案2】:

      我们可以使用以下类型的连接 URL 来利用 ActiveMQ 负载......

      failover://(tcp://192.nnn.nn.nn:61616,tcp://192.nnn.nn.nn:61616)?randomize=false
      

      randomize=true 将在主动模式下的两个 AciveMQ 之间进行消息洗牌,而不是仅仅通过 ActiveMQ 的故障转移......

      可以在以下 Apache 站点链接下找到完整的参考资料......

      http://activemq.apache.org/failover-transport-reference.html

      但高可用性(即集群)配置仍然使您的应用程序稳定,尽管 Apache 必须提高 ActiveMQ 高可用性,因此事情可以更顺利地工作。

      虽然因为KahaDB 限制负载平衡/容错配置受到限制。当前的 Apache ActiveMQ 高可用性配置可在以下链接中找到。

      http://activemq.apache.org/clustering.html

      但是KahaDB 有文件锁定限制,可以进行以下调整/替代配置方式...

      1) 共享文件系统主从,- 一个共享文件系统,如 SAN http://activemq.apache.org/shared-file-system-master-slave.html

      2)JDBC Master Slave,- 共享数据库 http://activemq.apache.org/jdbc-master-slave.html

      3) 复制的 LevelDB 存储,- ZooKeeper 服务器 http://activemq.apache.org/replicated-leveldb-store.html

      通过拥有 JCA 连接器,- 像 JBoss、Weblogic、Websphere、Geronimo、Glassfish 之类的 AS,- 可以将 ActimeMQ 修补作为一种资源适配器。并且使用 Apache Camel (karaf),可以完成 JBoss Fuse ESB 类产品 HA 和 ActiveMQ 集群。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-08-19
        • 1970-01-01
        • 1970-01-01
        • 2021-12-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多