2016-05-28 2 views
1

В Spring AMQP Project, , если messageProperties не имеет messageId, они всегда создают messageId.Зачем нужен messageId в AMQP?

Like This ..

if (this.createMessageIds && messageProperties.getMessageId()==null) { 
    messageProperties.setMessageId(UUID.randomUUID().toString()); 
} 

Я хочу знать, что MESSAGEID есть. Итак, я пытаюсь выяснить, где используется messageId. Но я не мог найти его в Spring AMQP Source.

Что произойдет, если messageId не существует? Почему сообщение необходимо в AMQP?

ответ

2

Идентификатор сообщения создается только в том случае, если значение createMessageIds преобразователя истинно - по умолчанию оно ложно.

Обычно не требуется, если вы не используете попытку повторения состояния с учетом потребителя.

При повторной попытке повторного использования и отказе доставки сообщение отклоняется и пересылается брокером. Поскольку RabbitMQ не включает количество повторений в заголовке, мы должны отслеживать, сколько раз была произведена поставка, чтобы мы могли отказаться после достижения maxAttempts. Идентификатор сообщения используется для поиска состояния повтора для этого сообщения.

Смежные вопросы