Простая распределенная очередь в кластере jboss?

Я работаю над сервером, который действует как веб-служба и интерфейс пользовательского интерфейса перед другим сервером. Оба сервера кластеризованы. Одной из особенностей пользовательского интерфейса являются задачи, над которыми работают пользователи. Эти задачи ставятся в очередь на activemq на внутреннем сервере, а элементы извлекаются через внешний сервер. Я хочу создать простую очередь в памяти, чтобы я мог как можно быстрее передавать эти элементы в пользовательский интерфейс. Я хочу избежать настройки другого сервера activemq. Мой текущий подход состоит в том, чтобы просто распределить очередь с помощью Infinispan, но это кажется неэффективным. Есть ли лучший способ использовать что-то, уже включенное в JBoss?


person Jeffrey Poore    schedule 08.08.2015    source источник


Ответы (1)


Вы можете просто использовать стандартный JMS, и он будет использовать HornetQ, встроенный в JBoss EAP 6. По умолчанию он будет использовать 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, чтобы увидеть длину очереди. Этот вопрос дает пример этого: Как найти длину очереди horneq

Также стоит отметить: JBoss EAP 7 собирается переключиться с HornetQ на ActiveMQ.

person teacurran    schedule 08.08.2015
comment
и что будет реплицироваться по всему кластеру? Еще одна причина, по которой я избегал JMS, заключается в том, что я хочу знать размер очереди, чтобы знать, когда ее пополнять. - person Jeffrey Poore; 09.08.2015