Java RabbitMQ连接自动恢复
我对RabbitMQ java客户端中连接的自动恢复有点困惑 考虑以下代码Java RabbitMQ连接自动恢复,java,rabbitmq,Java,Rabbitmq,我对RabbitMQ java客户端中连接的自动恢复有点困惑 考虑以下代码 ConnectionFactory factory; factory.setAutomaticRecoveryEnabled(true); Connection connection = factory.newConnection(); Channel chan_obj = conn.createChannel(); 根据RabbitMQ文档,如果连接断开,则自动恢复将重新创建连接、重新创建通道等。 当RabbitMQ
ConnectionFactory factory;
factory.setAutomaticRecoveryEnabled(true);
Connection connection = factory.newConnection();
Channel chan_obj = conn.createChannel();
根据RabbitMQ文档,如果连接断开,则自动恢复将重新创建连接、重新创建通道等。
当RabbitMQ自动恢复时,我真的很困惑如何处理“chan_obj”。
我很好奇恢复后从连接创建的“通道”是否可以用于对象“chan_obj”
另一个问题是,在恢复过程中,我是否会收到通道已关闭的通知,并希望随后会收到另一个通知,如“通道可以再次使用” 引用
另请参见和。以引用
另见和
我很好奇这个“频道”是不是在
恢复将可用于对象“chan_obj”
是的,它将是可用的,但在恢复完成之前(通常,切换到活动RabbitMQ节点需要几秒钟),chan_obj上的操作可能会导致类似以下文本的异常:
AMQP操作被中断:AMQP关闭原因,由对等方启动,code=320,text='CONNECTION\u FORCED-broker强制关闭连接,原因为'shutdown',classId=0,methodId=0
另一个问题是在恢复过程中,我会得到什么
通知频道已关闭,希望随后会有另一个频道
类似“频道可以再次使用”的通知
不确定它是否在Java RabbitMQ客户端库中实现,因为处理连接/通道故障的标准方法是实现重试逻辑(例如,尝试在一个通道上执行相同的操作数次,但有一定的延迟)
我很好奇这个“频道”是不是在
恢复将可用于对象“chan_obj”
是的,它将是可用的,但在恢复完成之前(通常,切换到活动RabbitMQ节点需要几秒钟),chan_obj上的操作可能会导致类似以下文本的异常:
AMQP操作被中断:AMQP关闭原因,由对等方启动,code=320,text='CONNECTION\u FORCED-broker强制关闭连接,原因为'shutdown',classId=0,methodId=0
另一个问题是在恢复过程中,我会得到什么
通知频道已关闭,希望随后会有另一个频道
类似“频道可以再次使用”的通知
不确定它是否在Java RabbitMQ客户端库中实现,因为处理连接/通道故障的标准方法是实现重试逻辑(例如,尝试在一个通道上执行相同的操作数次,但有一定的延迟)
Create a new channel, using an internally allocated
channel number. If automatic connection recovery is
enabled, the channel returned by this method will
be Recoverable.