在Spring AMQP项目中,如果messageProperties没有messageId,则它们始终创建messageId.
像这样..
if (this.createMessageIds && messageProperties.getMessageId()==null) {
messageProperties.setMessageId(UUID.randomUUID().toString());
}
Run Code Online (Sandbox Code Playgroud)
我想知道messageId是什么.所以,我试着找出使用messageId的位置.但我在Spring AMQP Source中找不到它.
如果messageId不存在会发生什么?为什么AMQP需要messageId?
仅当转换器createMessageIds为true时才会创建消息ID - 默认情况下为false.
除非您在消费者方面使用有状态重试,否则通常不需要.
使用有状态重试并且传递失败时,该消息将被代理拒绝并重新传递.由于RabbitMQ不包括标题中的重试次数,因此我们必须跟踪已尝试传递的次数,以便我们可以在maxAttempts达到之后放弃.消息ID用于查找此消息的重试状态.
| 归档时间: |
|
| 查看次数: |
3567 次 |
| 最近记录: |