Ссылка: Официальная документация GlassFish 4.0 / javaee-tutorial Java EE 7
Во-первых, давайте начнем с типа назначения: topic. В соответствии с руководством по GlassFish 4.0, раздел «46.4 Создание высокопроизводительных и масштабируемых приложений JMS»:
В этом разделе описывается, как использовать JMS API для написания приложений, которые могут надежно обрабатывать большие объемы сообщений.
В подразделе «46.4.2 Использование общих постоянных подписок»:
Клиент SharedDurableSubscriberExample.java показывает, как использовать общие долгосрочные подписки. Он показывает, как общие долговременные подписки сочетают в себе преимущества долговременных подписок (подписка остается активной, когда клиент не активен) с преимуществами общих потребителей (нагрузка сообщения может быть разделена между несколькими клиентами).
Когда мы запускаем этот пример в соответствии с «46.4.2.1 для запуска клиента ShareDurableSubscriberExample и производителя», он дает нам тот же эффект / функциональность, что и предыдущий пример для типа назначения очередь: если мы последуем «46.2.6.2 Для запуска клиентов AsynchConsumer и Producer», баллов 5 и далее - и немного изменим его, используя 2 потребителя окна терминала и 1 окно терминала производителя.
Да, в разделе «45.2.2.2 Стиль сообщений публикации / подписки» упоминается:
JMS API в некоторой степени смягчает это требование, позволяя приложениям создавать устойчивые подписки, которые получают сообщения, отправленные, пока потребители не активны. Долговечные подписки обеспечивают гибкость и надежность очередей, но при этом позволяют клиентам отправлять сообщения многим получателям.
.. и в любом случае в разделе «46.4 Написание высокой производительности и масштабируемости ..» примеры относятся к стилю очереди - одно сообщение для каждого потребителя:
Каждое сообщение, добавленное в подписку на тему, принимается только одним потребителем, аналогично тому, как каждое сообщение, добавленное в очередь, получает только один потребитель.
Каков точный технический ответ: почему в этом примере предполагается использование Shared-Durable-Consumer в теме, о чем упоминается в разделе «Высокопроизводительное и масштабируемое приложение JMS »по сравнению с использованием асинхронного потребителя в очереди?