jboss集群中的简单分布式队列?

时间:2015-08-08 18:55:15

标签: queue cluster-computing infinispan jboss-eap-6

我正在使用一台服务器作为另一台服务器前面的Web服务和UI前端。两台服务器都是集群的。 UI的一个功能是用户使用的任务。这些任务在后端服务器上的activemq上排队,并通过前端服务器获取项目。我想构建一个简单的内存中队列,以便我可以尽快将这些项目提供给UI。我想避免必须配置另一个activemq服务器。我目前的方法是使用Infinispan来分配队列,但这种效率很低。使用已经包含在JBoss中的东西有更好的方法吗?

1 个答案:

答案 0 :(得分:2)

你可以使用标准的JMS,它将覆盖JBoss EAP 6中内置的HornetQ。默认情况下,它会在内存中使用infinispan。

这里有一篇很好的文章,用于在AS 7中设置群集队列(EAP 6应该是相同的): http://blog.akquinet.de/2012/11/24/clustering-of-the-messaging-subsystem-hornetq-in-jboss-as7-and-eap-6/

为了监控队列中的项目数,您可以使用JMX:

    <subsystem xmlns="urn:jboss:domain:messaging:1.4">
        <hornetq-server>
            <clustered>true</clustered>
            <jmx-management-enabled>true</jmx-management-enabled>
            <!-- rest of config here -->
        </hornetq-server>
    </subsystem>

启用JMX后,您可以使用HornetQ特定代码来查看队列长度。这个问题给出了一个例子:How to find a horneq Queue length

同样可能值得注意的是:JBoss EAP 7将从Hor​​netQ切换到ActiveMQ。