После прочтения документации о том, что такое Rabbit и что он делает, у меня возникли несколько общих вопросов:
Дело: Производитель отправляет одно сообщение нескольким потребителям (подписчикам).
Мне нужен краткое объяснение для всех пунктов списка ниже, что использовать и что копать дальше.
Заранее благодарю вас и любые комментарии к этому вопросу!
Если вы можете уточнить некоторые из своих вопросов и указать свой вариант использования, я могу отредактировать ответ.
1 - Пока потребитель жив, rabbitmq отправляет потребителю входящие сообщения. Вы можете установить TTL для сообщений / очередей, если хотите, чтобы они истекали через некоторое время. https://www.rabbitmq.com/ttl.html
2 - Что ты имеешь в виду?
3 - Rabbitmq хранит данные в базе данных mnesia. https://www.rabbitmq.com/persistence-conf.htmlhttps://www.rabbitmq.com/relocate.html
4 - Что вы имеете в виду под фильтрами сообщений и очисткой очереди? Успешно использованные сообщения немедленно удаляются из очереди.
5 - Вы можете поставить ttl в очередь или объявить очередь как автоматическое удаление https://www.rabbitmq.com/ttl.htmlhttps://www.rabbitmq.com/queues.html
6.Если потребители не отправляют подтверждение кролику, сообщения остаются нетронутыми до тех пор, пока память не заполнится или кролик станет недоступен.
7 - Оба. Потребитель может создать свою собственную очередь и привязать ее к обмену или потреблять из существующей очереди. Это зависит от варианта использования.
8 - Трудно ответить на этот вопрос, не зная подробностей того, что вы подразумеваете под один ко многим. Прямой обмен или разветвление или whatelse, сколько очередей и т. д.
Но в rabbitmq сообщения по умолчанию упорядочены по порядку публикации.
Согласно ссылке, которую вы поделили, rabbitmq сначала отправляет сообщения потребителям с более высоким приоритетом, пока счетчик предварительной выборки потребителя (сообщения unack на потребителе) не станет его пределом.
9 - Вам нужно обработать этот случай в коде. Или вы можете использовать интерфейс управления с плагином Shovel.
https://www.rabbitmq.com/management.htmlhttps://www.rabbitmq.com/shovel.html
10 - Опять же, это зависит от дизайна и сценария использования.
6- или если канал, на который было доставлено сообщение, закрыт.