Asynchronous 负载平衡消息Q(ActiveMQ)

Asynchronous 负载平衡消息Q(ActiveMQ),asynchronous,activemq,message-queue,Asynchronous,Activemq,Message Queue,这是我的设想 1) 基于REST的web服务(比如X)接收请求并将其放入ActiveQ 2) 在Q的另一边有一个监听器,它将读取和处理消息。这是异步的 我决定使用ActiveMQ。 但是试图找到一个解决方案,在那里我可以让Q和Q监听器可伸缩 1) 我有很多运行X的实例。因此,Q有多个促动器。 2) 订购对我来说很重要。 3) 因为我的REST服务是无会话的,所以我没有办法用相同的消息ID标记一堆请求。 4) 现在,如果我使用一个Q,它工作得很好 但我想扩大规模,在不影响订单的情况下使用多个Q和多

这是我的设想

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

我决定使用ActiveMQ。 但是试图找到一个解决方案,在那里我可以让Q和Q监听器可伸缩

1) 我有很多运行X的实例。因此,Q有多个促动器。 2) 订购对我来说很重要。 3) 因为我的REST服务是无会话的,所以我没有办法用相同的消息ID标记一堆请求。 4) 现在,如果我使用一个Q,它工作得很好

但我想扩大规模,在不影响订单的情况下使用多个Q和多个Q消费者

有人能给我一个解决这个问题的办法吗


非常感谢,

要实现消息排序,activeMQ中定义了两种方法

1) 基于JMSXGroupID的消息组

2) 独家消费者

消息组比独占使用者更有用,因为内部独占使用者一次只使用一个使用者,但在该使用者出现故障的情况下,它会连接到其他使用者

您可以在此处阅读ActiveMQ文档以了解相同的内容

希望这有帮助!
祝你好运

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

failover://(tcp://192.nnn.nn.nn:61616,tcp://192.nnn.nn.nn:61616)?randomize=false
randomize=true
将在活动模式下在两个AciveMQ之间进行消息洗牌,而不仅仅是通过ActiveMQ的故障转移

在下面的Apache站点链接下可以找到关于此的完整参考

尽管Apache必须提高ActiveMQ的高可用性,但高可用性(即群集)配置仍然可以使应用程序的运行更加稳定,因此工作更加顺畅

尽管由于限制,负载平衡/容错配置受到限制。下面的链接中提供了当前的Apache ActiveMQ高可用性配置

然而,
KahaDB
有文件锁定限制,以下调整/替换配置方式可以完成

1) 共享文件系统主从-共享文件系统,如SAN

2) JDBC主从-共享数据库

3) 复制的LevelDB存储,-ZooKeeper服务器

除此之外,通过使用JCA连接器,比如JBoss、Weblogic、Websphere、Geronimo、Glassfish,可以完成ActimeMQ补丁作为一种资源适配器。使用apachecamel(karaf),JBoss融合了ESB类产品HA和ActiveMQ集群