RabbitMQ — есть ли способ вернуться к старым сообщениям в очереди

Допустим, мой потребитель получил подтверждение и по какой-то странной причине плохо обработал сообщение. Есть ли техника для повторного просмотра сообщения? Требования :
1. тот же порядок.
2. продолжать получать новые сообщения и ставить их последними в очереди?

поэтому, не ставить их в очередь (порядок упорядочения), что-то вроде перемещения индекса назад (как в kafka)? Спасибо.


person Bick    schedule 10.02.2014    source источник


Ответы (1)


1 – тот же порядок несовместим с асинхронной моделью AMQP.

Обычно сообщения RabbitMQ подаются в том порядке, в котором они были добавлены, но если произошла повторная доставка, это сообщение будет доставлено как можно скорее. Кроме того, если одно сообщение не было подтверждено среди других, оно также будет запланировано для клиента как можно скорее.

2 – вам может помочь Без надписей.

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

person pinepain    schedule 10.02.2014