在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