Невозможно, чтобы одно и то же сообщение было обработано дважды в Redis MQ , поскольку обработчик сообщений выталкивает сообщение из Redis List поддерживаемого MQ, и все операции Redis выполняются atomi c поэтому никакой другой обработчик сообщений не будет иметь доступа к сообщениям, которые были удалены из списка.
ServiceStack.Redis (который использует Redis MQ) поддерживает только Redis Sentinel для HA , что, несмотря на Redis поддерживая несколько реплик , они содержат только представление основного набора данных только для чтения, поэтому все операции записи, такие как операции добавления / удаления списка, могут выполняться только на одном главном экземпляре.
Одно заметное отличие от использования Redis MQ вместо c целевого MQ, такого как Rabbit MQ, заключается в том, что Redis не поддерживает ACK, поэтому, если рабочий процесс сообщения, который выводит сообщение из MQ, вылетает, тогда это сообщение теряется, в отличие от Rabbit MQ, где, если соединение с состоянием сообщения un Ack'd умирает, сообщение восстанавливается сервером RabbitMQ обратно в MQ.