2014-12-11 38 views
0

这是我的情况..负载平衡的MessageQ(ActiveMQ的)

1)基于REST的Web服务(例如x)发生在请求并将其放入ActiveQ 2)目前,正在对另一边的监听器将读取和处理消息的Q.这是异步

我决定和ActiveMQ一起去。 但试图找到一个解决方案,我可以Q和Q听众可扩展。

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

但我想扩展并使用多个Q和多个Q消费者,而不会影响订单。

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

由于多,

回答

0

为了实现消息的排序有根据的JMSXGroupID

2)独家消费者

消息组中的ActiveMQ定义2种方式

1)MessageGroups更加有用比独家消费者,因为内部独家消费者一次只使用一个消费者,但在消费者失败的情况下,它连接到其他消费者。

您可以阅读ActiveMQ的文档同样在这里

希望这有助于! 祝你好运!在主动模式下的两个AciveMQ之间

0

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

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

randomize=true将发邮件慢腾腾的,而不是由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主从, - 共享数据库 http://activemq.apache.org/jdbc-master-slave.html

3)复制性LevelDB存储, - 动物园管理员服务器 http://activemq.apache.org/replicated-leveldb-store.html

在&上面通过具有JCA连接器, - AS像JBoss,Weblogic的,WebSphere中,Geronimo中,Glassfish的, - ActimeMQ修补作为一种资源适配器的可以做到的。并且使用Apache Camel(karaf),JBoss Fuse ESB类产品HA &可以完成对ActiveMQ的集群。