将消息发布到 RabbitMQ 时出现 n/w 问题时消息是否丢失?

Is message lost when there's n/w issue while publishing the message to RabbitMQ?

我正在使用 Spring AMQP 将消息发布到 RabbitMQ。考虑一个场景:
1. Java客户端使用amqpTemplate.convertAndSend()
向MQ发送消息 2. 但是 RabbitMQ 挂了或者有一些 n/w 问题

这种情况下消息会丢失?要么 有什么方法可以持久化并重试吗?

我也检查了发布-确认模型,但据我了解,最终我们必须通过自己的编码来处理 nack 消息。

RabbitTemplate 支持添加一个 RetryTemplate,它可以根据您想要的任何重试语义进行配置。它将处理代理关闭时的情况。

参见Adding Retry Capabilities

您可以使用交易或发布者确认来确保兔子保护消息。