Я пытаюсь использовать RabbitMq более нетрадиционным способом (хотя в этот момент я могу выбрать любую другую реализацию очереди сообщений, если это необходимо).Вместо того, чтобы отправлять push-сообщения Rabbit моим потребителям, потребитель подключается к очереди и получает пакет из N сообщений (в течение которых он потребляет некоторые, а возможно, отклоняет некоторые), после чего он переходит в другую очередь и так далее.Это сделано для избыточности.Если некоторые потребители терпят крах, все сообщения гарантированно потребляются другим пользователем.
Проблема в том, что у меня несколько потребителей, и я не хочу, чтобы они конкурировали в одной и той же очереди.Есть ли способ гарантировать блокировку очереди?Если нет, могу ли я по крайней мере удостовериться, что если два потребителя подключены к одной и той же очереди, они не читают одно и то же сообщение?Транзакции могут в некоторой степени помочь мне, но я слышал, что они будут удалены из RabbitMQ.
Также приветствуются другие архитектурные предложения.
Спасибо!
РЕДАКТИРОВАТЬ: Как указано в комментарии, есть особенность в том, как мне нужно обрабатывать сообщения.Они имеют смысл только в группах, и существует высокая вероятность того, что связанные сообщения объединяются в очередь.Например, если я получу пакет из 100 сообщений, существует высокая вероятность, что я смогу что-то сделать с сообщениями 1-3, 4-5,6-10 и т. Д. Если мне не удастся найти группу для некоторых сообщений, яПовторно отправлю их в очередь.WorkQueue не будет работать, потому что он будет рассылать сообщения из одной группы нескольким работникам, которые не будут знать, что с ними делать.