Рассылка сообщений новым подписчикам - PullRequest
1 голос
/ 24 сентября 2019

Я создаю систему массовой обработки видео с использованием Spring-Boot.Здесь пользователь предоставит всю информацию, связанную с видео, через лист xlsx, и мы обработаем видео в бэкэнде.Я использую Rabbitmq для постановки в очередь запроса.Допустим, пользователь загрузил лист с 100 строками, тогда в очереди Rabbitmq будет 100 сообщений.В конце мы автоматически масштабируем подписчиков (серверы).Поэтому мы начнем с одного подписчика и, исходя из загрузки (количества сообщений в очереди), мы будем масштабировать до 15 подписчиков.Но наш продюсер работает очень быстро и распределяет все сообщения нашему первому подписчику (до появления других подписчиков), и все наши новые подписчики не получают никаких сообщений из очереди.Если все подписчики доступны до того, как производитель начал отправлять сообщения, он распределяет сообщения по всем серверам.

Пожалуйста, предоставьте мне решение, как наши новые подписчики могут извлекать сообщения из очереди, которые были созданы ранее.

1 Ответ

0 голосов
/ 25 сентября 2019

Вероятно, на вас влияет свойство контейнера слушателя prefetchCount - по умолчанию оно равно 250 с последними версиями (начиная с 2.0).

Таким образом, первый потребитель получит до 250 сообщений при запуске.

Похоже, вы должны уменьшить его до небольшого числа, вплоть до 1, чтобы у каждого потребителя было только одно сообщение.

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