Задать вопрос
Falseclock
@Falseclock
решаю нестандартные задачи

Какие нужны очереди в RabbitMQ для этих задач?

C RabbitMQ не работал, поэтому задаю, может быть, дурацкий вопрос.

Схема такая:
Есть frontend на PHP, на котором чисто "бизнес".

Есть ODATA сервис (на JAVA), который является единым интерфейсом для работы с различными базами данных и кэшами. По сути "логика". При изменении, внесении или удалении данных, сервис генерирует сообщение, которое должно прийти к одному или нескольким консьюмерам. По сути триггерная работа.

Есть backend на JAVA, у которого много разных консьюмеров. Каждый консьюмер делает определенные вещи, как то: один генерирует PDF, другой считает биллинг, третий рассылает почту, четвертый заливает файлы в облако, и т.д.

Стоят задачи:
1. Все сообщения должны быть обработаны и отправлен ACK.
2. Все сообщения должны быть DURABLE.
3. При отправке сообщения двум или более консьюмерам, ото всех должен быть получен ACK. (вот тут я вот не понимаю как работает или как реализовать правильно)

1. Правильно ли я понимаю, что для каждого консьюмера логично определить свою очередь, например:
billing
mailing
cloud
pdf
и т.д.
?

2. Сообщения удобней отправлять через шаблоны? Как их лучше именовать?

3. Обменник же должен быть с типом topic?
  • Вопрос задан
  • 351 просмотр
Подписаться 1 Простой Комментировать
Решения вопроса 1
@RidgeA
0. Одно и то же сообщение не может быть доставлено одновременно двум консьюмерам. Это могут быть сообщения с одинаковым содержимым, но для системы это будут разные сообщения.

1. Да это логично. Отдельная очередь под отдельную задачу позволит изменять количество обработчиков в зависимости от загрузки по каждой задаче в отдельности.

2. Вот тут не понял. Имеется ввиду routing_key ?

3. Есть 3 встроенных типа обменника. Лучше выбрать тот, который больше подходит по задаче, но надо учитывать что у них разная пропускная способность (вот, нашел статью - https://habrahabr.ru/company/oleg-bunin/blog/310418/)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы