Я стремлюсь создать платформу распределенного обмена сообщениями «публикация / подписка», которая может управлять огромными объемами трафика сообщений с некоторыми интеллектуальными возможностями на уровне брокера. Я не знаю, есть ли топология, которая описывает это, но это модель, к которой я иду:
ПРИМЕР МОДЕЛИ A
A) Существует два запущенных брокера сообщений (в идеале, если возможно, на локальном хосте, для упрощения демонстрации):
B) У каждого брокера будет 2 слушателя и 1 издатель.
Пример рисунка
[подписчик A1, подписчик A2, издатель A1] <-> BrokerA <->
БрокерБ <->
[издатель B1, подписчик
B1, абонент B2]
ЕСЛИ сообщение-X опубликовано для брокера A, и подписчиков на него нет среди слушателей на Broker-B (через
критерии в селекторах сообщений или правилах маршрутизации брокера), то это сообщение X никогда не будет опубликовано в брокере-B.
В противном случае, брокер A опубликует сообщение для брокера B, где один из
брокер Б
слушатели / подписчики / сервисы
ожидая, что сообщение на основе
Критерии подписки.
Является ли кластеризация правильным подходом?
Сначала я пришел к выводу, что концепция «брокерской кластеризации» - это то, что мне нужно для поддержки этого. Однако, как я понял, типичное использование кластеризации влечет за собой:
- избыточность сообщений у всех брокеров ... или
- Конкурирующий образец потребителей
... и ни один из них не удовлетворяет требованию в ПРИМЕРНОЙ МОДЕЛИ А.
Что такое правильный подход?
Мой вопрос: кто-нибудь знает о реализации JMS, которая поддерживает модель, которую я описал?
Я просканировал все заголовки сообщений в стеке потока для поиска: JMS и Cluster. Я нашел эти два информативных, но, казалось бы, противоречивых сообщения:
Говорит, что ПРИМЕРНАЯ МОДЕЛЬ A поддерживается / должна поддерживаться неявно:
JMS-потребитель с сетью брокеров ActiveMQ
«Это означает, что вы выбираете брокера, подключаетесь к нему и позволяете сети брокеров разбирать его между собой. В теории».
говорит, что ПРИМЕР МОДЕЛИ НЕ ПОДДЕРЖИВАЕТСЯ:
Как подписчик тем JMS на кластерном сервере приложений получает сообщения?
«Все экземпляры PropertiesSubscriber, запущенные на разных серверах приложений, получат это сообщение».
Любые предложения будут с благодарностью.
Большое спасибо за чтение моего поста,
Gene