Возможно ли перераспределение существующих сообщений между всеми запущенными потребителями? - PullRequest
0 голосов
/ 14 апреля 2020

У меня есть ActiveMQ Artemis. Производитель генерирует 1000 сообщений, а потребитель по одному обрабатывает их. Теперь я хочу обработать эту очередь с помощью двух потребителей. Я начинаю нового потребителя и новые сообщения распределяются между двумя запущенными потребителями. Мой вопрос: возможно ли перераспределить старые сообщения между всеми запущенными потребителями?

1 Ответ

1 голос
/ 15 апреля 2020

Как только брокер отправляет сообщения потребителю, брокер не может просто вызвать их, поскольку потребитель может их обрабатывать. Потребитель должен отменить сообщения обратно в очередь (например, закрыв соединение / сеанс).

Я бы порекомендовал настроить ваш consumerWindowSize (установленный на URL-адресе клиента) так, чтобы подходящее количество сообщений рассылается вашим потребителям. По умолчанию consumerWindowSize составляет 1 МБ (1024 * 1024 байта). Меньшее значение consumerWindowSize будет означать, что больше клиентов смогут получать сообщения одновременно, но это также будет означать, что клиенты должны будут выполнять больше обходов в сети, чтобы сказать брокеру отправлять больше сообщений, когда они заканчивают работу. Вам нужно будет выполнить тесты, чтобы найти правильное значение consumerWindowSize для вашего случая использования и производительности.

...