八、RabbitMQ-客户端源码之ChannelN
ChannelN是整个RabbitMQ客户端最核心的一个类了,其包含的功能点甚多,这里需要分类阐述。
首先来看看ChannelN的成员变量:
private final Map
_consumers = Collections.synchronizedMap(new HashMap
());
private volatile Consumer defaultConsumer = null;
private final ConsumerDispatcher dispatcher;
private final Collection
returnListeners = new CopyOnWriteArrayList
();
private final Collection
flowListeners = new CopyOnWriteArrayList
(); private volatile CountDownLatch finishedShutdownFlag = null; private final Collection
confirmListeners = new CopyOnWriteArrayList
(); private long nextPublishSeqNo = 0L; private final SortedSet
unconfirmedSet = Collections.synchronizedSortedSet(new TreeSet
()); private volatile boolean onlyAcksReceived = true;
源代码中有关ChannelN的呈现顺序有所不同,这里博主为了区分开来,重新排了序。