Может ли SEDA помочь масштабировать потребителя JMS? - PullRequest
0 голосов
/ 10 января 2019

Если у меня есть потребитель Camel JMS, с

  • maxConcurrentConsumers = 10
  • чтение из MQ с максимальным размером пула = 10 на соединение) и
  • disableReplyTo = истина

Q1. Может ли увеличение maxConcurrentConsumers помочь масштабировать маршрут? После того, как сообщение будет прочитано из очереди, будет ли разорвано соединение?

Q2. Может ли размещение шаблона производителя-потребителя SEDA сразу после использования сообщения помочь с масштабированием? Или же можно просто увеличить maxConcurrentConsumers на потребителе JMS?

enter image description here

1 Ответ

0 голосов
/ 10 января 2019

Обычно лучше разрешить масштабирование от потребителя JMS, а затем масштабировать горизонтально, добавляя больше узлов.

SEDA - это очередь в памяти в JVM, и даже если вы можете «масштабироваться» путем быстрого потребления из очереди JMS в очередь SEDA, вы просто перемещаете сообщения из «безопасного» хранилища в посреднике в более «небезопасное» хранилище в памяти JVM.

JMS-брокер создан для масштабирования и имеет несколько архитектурных стилей и топологий для настройки брокерской системы в соответствии с вашими потребностями. Так что лучше использовать его.

Компонент JMS имеет опции для настройки параллелизма, которые вы также можете настроить. И на стороне клиента / брокера JMS. Например, ActiveMQ имеет размер предварительной выборки и другие, которые можно настроить.

С моей коммерческой шляпой: если вы подписчик Fuse, у нас есть руководства по масштабированию Fuse / AMQ, которые вы также можете прочитать и получить помощь от нашей команды.

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