Фон
Я делаю типичное приложение публикации / подписки, в котором издатель отправляет сообщения потребителю.
Издатель и потребитель находятся на разных машинах, и связь между ними может иногда прерываться.
Задача
Здесь цель состоит в том, чтобы убедиться, что независимо от того, что происходит с подключением или с самими машинами, сообщение, отправленное издателем, всегда получено потребителем.
Заказ сообщений не является обязательным.
Проблема
Согласно моим исследованиям, RabbitMQ - правильный выбор для этого сценария:
Однако, хотя в RabbitMQ есть руководство по публикации и подписке, это руководство не представляют нас в постоянные очереди и не упоминают подтверждения, которые, как я считаю, являются ключом к тому, чтобы сообщения доставлен.
С другой стороны, Redis тоже может это делать:
но я не смог найти никаких официальных руководств или примеров, и мое текущее преуменьшение заставляет меня полагать, что постоянные очереди и подтверждения сообщений должны выполняться нами, поскольку Redis в основном находится в хранилище данных в памяти, а не в брокере сообщений, таком как RabbitMQ.
Вопросов
- Какое решение было бы проще всего реализовать для этого варианта использования? (Решение Redis или решение RabbitMQ?)
- Пожалуйста, дайте ссылку на пример того, что, по вашему мнению, было бы лучше всего!