问题描述
我们在Scala中使用Java RMQ客户端,并且在DEV环境中遇到一些问题。我们设置了这种后备策略:
def addConnectionShutdownListener(connection: Connection): Unit ={
connection.addShutdownListener { cause: ShutdownSignalException =>
logger.error(s"Error on RMQ connection: ${cause.getMessage}",cause)
if (exitOnFail) {
logger.info("Terminating process with RMQ consumer is shut down")
System.exit(1)
}
else if (retryOnFail) {
logger.info(s"retrying to connect")
retryCreatingConnection(1)
}
}
}
addConnectionShutdownListener(rmqConnection)
- 失败退出
- 重试失败
我设置了失败策略退出,有时它可以正常运行。当发生错误 RMQ使用者的终止过程已关闭,并且服务正确重新启动(kubernetes pod已关闭并再次自动启动)时,我在日志上看到此行。我禁用了RMQ自动恢复,因为它根本没有用。
问题是有时有些队列没有使用者,消息正在排队并挂起,但是日志中没有此错误消息。真的很难测试,因为我不知道我们的DEV环境发生了什么情况。
会发生什么? 是否有更好的方法来处理连接丢失问题,或更准确地说,是要处理消费者以某种方式脱离队列的情况?
预先感谢
美国
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)