rabbitmq4.0以下版本遇到断网重连异常

2022-07-21 09:16:59

现象描述:一个客户端反应经常性不更新显示信息,分析是rabbitmq的消息没有及时consumer。登陆服务器控制台查看消息状态是ready。终端连接状态running。但就是不消费信息了。

分析:

怀疑网络中途有中断波动

1.代码里已经设置setAutomaticRecoveryEnabled,所以Connection连接状态自动恢复了

2.但是consumer却没有设置自动恢复。

通过查看资料:

在客户端开启ConnectionTopology(Queue、Exchange、Binding、Consumer)自动恢复的方法如下:

  • factory.setAutomaticRecoveryEnabled(boolean):用于开启或关闭Connection自动恢复。
  • factory.setNetworkRecoveryInterval(long):用于设置重试时间间隔。如果Connection自动恢复异常,设置了Connection自动恢复的客户端将在一段固定时间间隔(默认为5秒)后重试。
  • factory.setTopologyRecoveryEnabled(boolean):用于开启Topology自动恢复。Topology包括Queue、Exchange、Binding、Consumer。

处置方法:

设置setTopologyRecoveryEnabled。主要项目用的MQ版本是3.8.9,4.0.0及以上版本Java客户端默认开启Connection和Topology自动恢复,您无需在代码中设置。

  • 作者:大志哥123
  • 原文链接:https://blog.csdn.net/liuxinzhi1982/article/details/123954460
    更新时间:2022-07-21 09:16:59