Использование Redis для паба Sub. Преимущества/Недостатки над RabbitMQ

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

Мы почти решили RabbitMQ из-за поддержки сообщества, документации и функций (возможно, он доставит все, что нам нужно). Но я очень склонен к использованию Redis, потому что он выглядит многообещающим и легким. Честно говоря, у меня есть ограниченное понимание Redis как системы обмена сообщениями, но, глядя на растущее число компаний, использующих его в качестве очереди (с Ruby Resque), я хочу знать, есть ли предложение, такое как Resque на Java, и каковы преимущества или недостатки использования Redis как MQ над RabbitMQ.

Ответ 1

RabbitMQ поддерживает кластеризацию и теперь имеет активную/активную очередь с высокой доступностью, позволяющую более полномасштабным и доступным параметрам, с возможностью использования Redis из коробки.

RabbitMQ дает вам больший контроль над всем, от пользователей/разрешений обменов/очередей, от долговечности определенного обмена или очереди (диска и памяти) до гарантий доставки (транзакции, подтверждения издателя).

Он также обеспечивает большую гибкость и возможности для ваших топологий (разветвление, тема, прямая) и маршрутизацию в несколько очередей, RPC с частными очередями и ответами и т.д.