Можно ли как-то перезаписать поведение JMS-провайдера при обмене сообщениями? - PullRequest
0 голосов
/ 15 января 2010

Я знаю, что для некоторых экспертов это может показаться смешным, однако, это было в моей голове довольно долгое время, и до сих пор не найдено конкретного ответа.

В ОПУБЛИКОВАТЬ / ПОДПИСАТЬСЯ СООБЩЕНИЕ С ТЕМАМИ JMS : издатель JMS отправляет сообщение поставщику JMS, а поставщик JMS отправляет сообщение подписчикам JMS и получает их подтверждение.

Возможно ли, что я смогу каким-либо образом изменить провайдера JMS, чтобы производитель JMS отправлял только все остальные сообщения, которые он получает от издателя JMS?

Абсолютно новичок в этой области, поэтому любые предложения приветствуются.

Ответы [ 3 ]

1 голос
/ 15 января 2010

Если вы хотите, чтобы подписчик мог настраивать прием сообщений в пакетах, где каждый подписчик может иметь разный размер пакета, то JMS не будет предоставлять эту функцию. Это не типичный сценарий типа pubsub.

Если вы хотите выполнить это, я бы посоветовал вам добавить пользовательскую буферизацию на стороне подписчика, которая будет ставить в очередь входящие сообщения, а затем делать пакетное уведомление, когда ваша очередь заполнится. Это можно легко настроить для каждого подписчика.

Единственная система обмена сообщениями, которая, насколько мне известно, предоставляет аналогичные функции, - это pubsub в XMPP , но даже в этом случае пакеты определяются по временному интервалу, а не по числу.

0 голосов
/ 15 января 2010

Почему вы хотите это сделать? Разве это не победило бы весь гамбит обмена сообщениями, который не потерял бы никаких сообщений? Или вы хотите точно контролировать, как сообщение распространяется среди подписчиков? Даже это пошло бы вразрез с основными спецификациями JMS.

0 голосов
/ 15 января 2010

Вы можете посмотреть фильтрацию подписок JMS с помощью селекторов сообщений API JMS. После этого вы можете только читать / обрабатывать сообщения, которые соответствуют определенным критериям.

С более подробной информацией о том, что вы пытаетесь выполнить (фильтрация? Тестирование пропущенных сообщений? Балансировка нагрузки? Что-то еще полностью?), Вы можете получить лучший ответ.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...