RabbitMQ架构篇 - Connection

it2023-10-04  70

文章目录

前言源码分析创建RecoveryAwareChannelN实例。使用AutorecoveringChannel对RecoveryAwareChannelN实例封装并注册


前言

本文接着上一篇ConnectionFactory的文章分析。

Channel channel = connection.createChannel();

概述:创建RecoveryAwareChannelN实例并打开。然后使用AutorecoveringChannel对该实例封装并注册。


源码分析

delegate:RecoveryAwareAMQConnection类型。

由于创建的RecoveryAwareChannelN实例不为空,所以会执行else从句的逻辑。

虽然是由AutorecoveringConnection调用createChannel()方法,但是实际委派给RecoveryAwareAMQConnection创建Channel。


创建RecoveryAwareChannelN实例。


创建RecoveryAwareChannelN实例。


确保连接处于开放状态。

判断连接是否处于开放状态。


创建RecoveryAwareChannelN实例。

instantiateChannel(…):直接构建一个RecoveryAwareChannelN实例。

打开该RecoveryAwareChannelN。

发起一次伪RPC调用。(由AMQChannel负责,以后会分析这个方法的)


使用AutorecoveringChannel对RecoveryAwareChannelN实例封装并注册

封装并注册AutorecoveringChannel。

注册该AutorecoveringChannel。


最新回复(0)