重新连接弹簧amqp

时间:2014-10-10 03:41:33

标签: java rabbitmq spring-amqp spring-rabbit

我正在使用org.springframework.amqp.rabbit.connection.CachingConnectionFactory连接到RabbitMQ。 但我的应用程序在断开连接后不会自动重新连接到Rabbit服务器(因为网络问题)

是否有任何配置可让CachingConnectionFactory自动重新连接?

2 个答案:

答案 0 :(得分:4)

为了处理失败并重新连接,您可以查看Lyra(而不是spring-amqp)。

答案 1 :(得分:2)

考虑在该对象上使用setRequestedHeartBeat()requested-heartbeat)。

根据RabbitMQ Manual

  

在某些类型的网络故障中,数据包丢失可能意味着中断的TCP连接需要一些时间才能被操作系统检测到。 AMQP提供心跳功能,以确保应用程序层及时发现中断的连接(以及完全没有响应的对等体)。心跳还可以防御可能终止“空闲”TCP连接的某些网络设备。在RabbitMQ 3.0及更高版本中,代理将默认尝试协商心跳(尽管客户端仍然可以否决它们)。使用早期版本时,必须将客户端配置为请求心跳。