更新时间:2022-06-16 GMT+08:00
分享

网络异常自动恢复

本章节介绍客户端与服务端由于服务端重启、网络抖动等原因造成网络连接断开时,如何在客户端设置网络自动恢复。4.0.0及以上版本的Java客户端默认支持网络自动恢复,无需设置。

如果应用程序使用Connection.Close方法关闭连接,则不会启用或触发网络自动恢复。

触发自动恢复的场景

以下场景会触发网络自动恢复:

  • 在连接的I/O循环中抛出未处理的异常
  • 检测到Socket读取超时
  • 检测到服务端心跳丢失

重试连接示例代码

客户端和服务端的初始连接失败,不会触发自动恢复,建议您编写对应的应用程序代码,通过重试连接来解决初始连接失败的问题。

以下示例演示了使用Java客户端通过重试连接解决初始连接失败的问题。

ConnectionFactory factory = new ConnectionFactory();
// enable automatic recovery if using RabbitMQ Java client library prior to version 4.0.0.
factory.setAutomaticRecoveryEnabled(true);
// configure various connection settings
 
try {
  Connection conn = factory.newConnection();
} catch (java.net.ConnectException e) {
  Thread.sleep(5000);
  // apply retry logic
}

分享:

    相关文档

    相关产品