socket通讯对rabbitmq ack的影响

三十回头 发布于 2017/02/28 10:04
阅读 169
收藏 0

对方socket接口关闭时,消费者通过rabbitmq取出消息并进行socket通讯报错了,有try catch的操作,这个时候就会出现unack的消息,通过rabbitmq界面看到unack和total里面都有消息,而且不断地在增加,重启项目以后就没有unack的消息了,求大神们帮忙看看,不胜感激!

加载中
0
你我他有个梦
你我他有个梦

1.有可能是发布确认的问题,首先如果确认消费到了消息,那么如果还是unack,那么说明broker未确认消息,发布者客户端未接收到basic.ack,但是应该是会有日志记录,重启之后应该可以看到unack的消息。可以参考:https://my.oschina.net/lzhaoqiang/blog/670749

2.有可能是线程池的问题,也就是说你创建的channel数量多于了线程池的数量了,channel无法处理消息

三十回头
三十回头
怎么确定下是线程池的问题 或者怎么看线程池
0
三十回头
三十回头

引用来自“lzhaoqiang”的评论

1.有可能是发布确认的问题,首先如果确认消费到了消息,那么如果还是unack,那么说明broker未确认消息,发布者客户端未接收到basic.ack,但是应该是会有日志记录,重启之后应该可以看到unack的消息。可以参考:https://my.oschina.net/lzhaoqiang/blog/670749

2.有可能是线程池的问题,也就是说你创建的channel数量多于了线程池的数量了,channel无法处理消息

十分感谢,大致是有方向了!

返回顶部
顶部