我正在使用org.springframework.amqp.rabbit.connection.CachingConnectionFactory
连接到RabbitMQ。
但我的应用程序在断开连接后不会自动重新连接到Rabbit服务器(因为网络问题)
是否有任何配置可让CachingConnectionFactory
自动重新连接?
答案 0 :(得分:4)
为了处理失败并重新连接,您可以查看Lyra(而不是spring-amqp)。
答案 1 :(得分:2)
考虑在该对象上使用setRequestedHeartBeat()
(requested-heartbeat
)。
在某些类型的网络故障中,数据包丢失可能意味着中断的TCP连接需要一些时间才能被操作系统检测到。 AMQP提供心跳功能,以确保应用程序层及时发现中断的连接(以及完全没有响应的对等体)。心跳还可以防御可能终止“空闲”TCP连接的某些网络设备。在RabbitMQ 3.0及更高版本中,代理将默认尝试协商心跳(尽管客户端仍然可以否决它们)。使用早期版本时,必须将客户端配置为请求心跳。