rabbitmq connection lost之后重发消息

在调试使用RabbitMQ的应用时,发现因长时间debug导致连接丢失,RabbitMQ重连后重复发送消息。问题源于RabbitMQ的消息确认机制,确保消息不丢失。当消费者未发送确认,RabbitMQ会重新发送消息。本文探讨了RabbitMQ的确认模式,包括auto模式下连接断开未确认消息的重发问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在debug一个使用了rabbit的应用程序时,遇到这样一个问题。应用程序收到了rabbitmq的消息,正在处理,由于是debug,应用程序在编辑器里长时间的停留在某个节点,导致rabbitmq的连接丢失,随后继续执行程序时rabbitmq又重连,由于重连rabbitmq不确定之前的消息被成功的消费,所以又再次发送了之前的消息,然后service在处理完message之后,又重新收到了一样的event且再此处理。

rabbit连接的配置为:

10:50:59.233 [abc.abc-changed.exchange.group-1] INFO  o.s.a.r.l.SimpleMessageListenerContainer - Restarting Consumer@fba5072: tags=[[amq.ctag-ceBsEnpsb-Rqk7TSFFjExQ]], channel=Cached Rabbit Channel: AMQChannel(amqp://guest@127.0.0.1:5672/,18), conn: Proxy@554d4856 Shared Rabbit Connection: SimpleConnection@388a6cb2 [delegate=amqp://guest@127.0.0.1:5672/, localPort= 63108], acknowledgeMode=AUTO local queue size=0

 

链接断开的log为


10:50:55.246 [abc.abc-changed.exchange.group-1] WARN  c.s.n.b.c.l.RabbitmqConnectionListener - Connection to RabbitMQ was lost. Emptying cache ...
10:50:55.25
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值