第14篇 rabbitmq Channel接口源码

上节第13篇写了 ConsumerDispatcher, 查询到使用地方是ChannelN类,如下所示,由于Channel内容比较多就先看一下Channel源码

image-20210615110402583

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、总结

  1. 监听器方法(返回监听器和确认监听器)
  2. 交换器方法
  3. 队列方法,队列绑定和解绑
  4. ack相关方法
  5. tx方法(事务)
  6. 发送消息的方法

2、AutoCloseable分析

3、ShutdownNotifier 接口

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值