PCF RabbitMQ队列中未确认的消息

问题描述

我正在使用PCF运行我的spring-boot应用程序。还使用了PCF RabbitMQ服务。

我的问题是,有一段时间,队列中的消息被长时间固定在未确认的位置,并且我注意到PCF中正在运行的应用程序实例的数量小于RabbitMQ中活动的使用者通道的数量

RabbitMQ

PCF

我还启用了自动缩放器,它将根据所应用的规则自动缩放应用实例。

我没有复制问题的运气,因为客户端应用程序中没有错误日志,而我唯一的解决方案是在PCF中重新启动应用程序。我还试图强行终止该应用程序,看来消费者渠道也被破坏了。

我可以查寻任何帮助或建议吗? 我将春季云流用于我的客户应用程序,并在yml文件中进行了非常基本的配置(没有dlq,没有自定义超时等)

谢谢!

解决方法

2.0.x不再受支持;但是,最新的2.0.x是2.0.14。

如果您在amqp客户端中使用自动恢复(不建议使用,因为Spring AMQP在客户端中的自动恢复之前具有自己的恢复机制),那么2.0.7中包含一个修复程序。

您至少应升级到2.0.14,但最好升级到受支持的新版本;当前版本是2.2.10。

也就是说,绝大多数此类问题是由侦听器线程“卡在”用户代码中引起的。下次发生线程转储时。

,

我们遇到了类似的问题,据我所记得,我们不得不在Rabbit连接工厂上将autoRecoveryEnabled设置为false,因为这和spring自动恢复之间存在冲突。