gpt4 book ai didi

amqp - 为什么在 AMQP 中需要 messageId?

转载 作者:行者123 更新时间:2023-12-04 17:32:49 26 4
gpt4 key购买 nike

在 Spring AMQP 项目中,
如果 messageProperties 没有 messageId,它们总是创建 messageId。

像这样..

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

我想知道 messageId 是什么。因此,我尝试找出使用 messageId 的位置。但是我在 Spring AMQP Source 中找不到它。

如果 messageId 不存在会发生什么?
为什么在 AMQP 中需要 messageId?

最佳答案

仅当转换器的 createMessageIds 时才创建消息 ID为真 - 默认情况下为假。

通常不需要,除非您在消费者端使用有状态重试。

当使用有状态重试并且传递失败时,消息会被代理拒绝并重新传递。由于 RabbitMQ 没有在 header 中包含重试次数,所以我们必须跟踪尝试了多少次交付,以便我们可以在 maxAttempts 之后放弃。到达了。消息 ID 用于查找此消息的重试状态。

关于amqp - 为什么在 AMQP 中需要 messageId?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37494605/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com