上节第13篇写了 ConsumerDispatcher, 查询到使用地方是ChannelN类,如下所示,由于Channel内容比较多就先看一下Channel源码
1、Channel 接口
- channel实例不在线程间共享,应用应该一个channel一个线程,如果不是一个channel一个线程,虽然通道上的某些操作可以安全调用,但是同时导致不正确的帧交错,线程间共享通道也会干扰发布者确认
1.1、接口方法
方法名 | 方法描述 | |
---|---|---|
int getChannelNumber | 获取通道号 | |
Connection getConnection | 获取连接对象 | |
void close | 使用REPLY_SUCCESS去关闭,并且消息返回"OK" | |
void abort | 关闭通道,同时静默丢弃消息 | |
void addReturnListener | 添加返回监听器 | |
boolean removeReturnListener | 移除返回监听器 | |
void clearReturnListeners | 移除所有返回监听器 | |
void addConfirmListener | 添加确认监听器 | |
boolean removeConfirmListener | 移除确认监听器 | |
void clearConfirmListenters | 清除所有确认监听器 | |
Consumer getDefaultConsumer | 返回默认Consumer对象 | |
void setDefaultConsumer | 设置默认Consumer | |
void basicQos | (quality of service)预计取数据条数 | |
void basicPublish | 发布消息 | |
Exchange.DeclareOk exchangeDeclare | 声明交换器 | |
void exchangeDeclareNoWait | 声明没有任何返回值交换器 | |
Exchange.DeclareOk exchangeDeclarePassive | 声明某个名称交换器是否存在 | |
Exchange.DeleteOk exchangeDelete | 交换器删除 | |
void exchangeDeleteNoWait | 没有返回值 交换器删除 | |
Exchange.BindOk exchangeBind | 交换器绑定 | |
void exchangeBindNoWaits | 没有任何返回交换器绑定 | |
Exchange.UnbindOk exchangeUnbind | 交换器解绑 | |
void exchangeUnbindNoWait | 没有返回值,交换器解绑 | |
Queue.DeclareOk queueDeclare | 声明队列 | |
void queueDeclareNoWait | 声明队列,没有返回值 | |
Queue.DecareOk queueDeclarePassive | 被动声明队列 | |
Queue.DeleteOk queueDelete | 删除队列 | |
void queueDeleteNoWait | 删除队列,无返回值 | |
Queue.BindOk queueBind | 队列绑定 | |
void queueBindNoWait | 队列绑定,无返回值 | |
Queue.UnbindOk queueUnbind | 队列解绑 | |
Queue.PurgeOk queuePurge | 清除给定队列 | |
GetResponse basicGet | 队列中取出消息 | |
void basicAck | 返回 一个或多个ack | |
void basicNack | 拒绝一个或多个ack | |
void basicReject | 拒绝一个消息 | |
String basicCosume | 启动一个的消费者,使用显式确认和服务器生成的consumerTag | |
void basicCancel | 取消一个消费者 | |
Basic.RecoverOk basicRecover | 重新发送未识别的消息 | |
Tx.SelectOk txSelect | 在通道中开启Tx模式 | |
Tx.CommitOk txCommit | 在通道中tx提交 | |
Tx.RollbackOk txRollback | 在通道中回滚tx | |
Confirm.SelectOk confirmSelect | 在此通道上启用发布者确认。 | |
long getNextPublishSeqNo | 获取下一个发布序列号 | |
boolean waitForConfirms | 等待确认 | |
void waitForConfirmsOrDie | 等待确认 | |
void asyncRpc | 异步发送方法 | |
Command rpc | 同步发送方法 | |
long messageCount | 队列的消息数量 | |
consumerCount | 队列中消费消息数量 | |
CompletableFuture asyncCompletableRpc | 通过这个通道发送异步消息 |
1.2、总结
- 监听器方法(返回监听器和确认监听器)
- 交换器方法
- 队列方法,队列绑定和解绑
- ack相关方法
- tx方法(事务)
- 发送消息的方法