算是终于去看到AMQImpl源码,也就具体Method实现,AMQP一些指令做一些了解,第16篇你可以了解AMQP接口源码,有个大致了解
-
第16篇 AMQP接口源码
-
-
1-8 就是具体Method的指令的实现,具体目标就是实现Method 和 Frame互转
-
9-10,遍历属性类,目前是不支持遍历
-
11 Frame (DataInputStream)–> Method, 将具体流变成指令方法 (使用MethodArgumentWriter/Reader)
-
12 Frame (DataInputStream)–> ContentHeader, 将具体流变成请求头属性(使用的是ContentHeaderPropertyWriter/Reader)
-
约定一下
- 第一个Connection 中Start会稍微描述详细一样,后面一般都是属性不同而已,所有简单带过
1、Connection类
1.1、Start类 extend Method implement Start接口
- Method主要是定义
- protocolClassId() 那个类下面(这里说明是Connection类下面的)
- protocolMethodId() 某个类的子类(这里是Start类)
- protocolMethodName() (类名小写用点连接,例如connection.start)
- hasContent() 判断该指令是否内容信息
- visit(MethodVisitor rdr) 访问对象返回一个Object
- appendArgumentDebugStringTo(StringBuilder acc) 调试使用
- writeArgumentsTo(MethodArgumentWriter writer) 将属性写入到Frame流中(确定写入属性顺序和字段)
- Start接口
- 定义Builder构造器(用于收集构建Start属性参数),其实慢慢理解接口含义,定义模板或者说定义功能,不关心实现
- 抽象属性的getter方法
1.1.2、属性字段
字段名 | 默认值 | 是否必填 | 描述 |
---|
final int INDEX | 10 | | 表示这个子类(methodId) |
final int versionMajor | | | 服务端AMQP协议主版本 |
final int versionMinor | | | 服务端AMQP协议次版本 |
final Map<String, Object> serverProperties | | | 服务端属性参数 |
LongString mechanisms | | 必填 | 服务器机制(目前没有没有理解) |
LongString locales | | 必填 | 服务端语言环境 |
1.1.3、方法
方法名 | 描述 | 图示 |
---|
Start(各个属性) | 构造方法,根据各个属性构建Start | |
Start(MethodArgumentReader rdr) | 构造方法,根据流进行构建(Frame)Start | |
@Override boolean equals(Object) | 重写equals方法,每个属性必须相等 | |
@Override int hashCode() | 重写hashCode方法,jdk默认(每个属性乘以31 | |
void writeArgumentsTo(MethodArgumentWriter writer) | 写属性顺序(默认跟属性列表一样) 1、versionMajor 2、versionMinor 3、serverProperties 4、mechanisms 5、locales | |
1.1.4、可能使用场景
1.2、StartOk类 extend Method implement StartOk接口
1.2.1、成员变量
字段名 | 默认值 | 是否必填 | 描述 |
---|
final int INDEX | 11 | | 表示这个子类(methodId) |
Map<String,Object> clientProperties | | 必填 | 客户端属性 |
String mechanism | | 必填 | 机制 |
LongString response | | 必填 | 登录用户名(凭证) |
String locale | | | 本地语言环境(默认en_US) |
1.2.2、可能使用场景
1.2.3、方法
- 基本跟Start类似
- void writeArgumentsTo(MethodArgumentWriter writer) 写属性顺序和成员变量表一样(去掉INDEX常量)
1.3、Secure类 extend Method implement Secure接口 (TODO)
1.3.1、成员变量
字段名 | 默认值 | 是否必填 | 描述 |
---|
final int INDEX | 20 | | 表示这个子类(methodId) |
final LongString challenge | | 必填 | |
1.3.2、可能使用场景
1.3.3、方法
- 基本跟Start类似
- void writeArgumentsTo(MethodArgumentWriter writer) 写属性顺序和成员变量表一样(去掉INDEX常量)
1.4、SecureOk类 extend Method implement SecureOk接口 (TODO)
1.4.1、成员变量
字段名 | 默认值 | 是否必填 | 描述 |
---|
final int INDEX | 21 | | 表示这个子类(methodId) |
final LongString challenge | | 必填 | |
1.4.2、可能使用场景
1.4.3、方法
- 基本跟Start类似
- void writeArgumentsTo(MethodArgumentWriter writer) 写属性顺序和成员变量表一样(去掉INDEX常量)
1.5、Tune类 extend Method implement Tune接口 (TODO)
1.5.1、成员变量
字段名 | 默认值 | 是否必填 | 描述 |
---|
final int INDEX | 30 | | 表示这个子类(methodId) |
final int channelMax | | | 通道最大数 |
final int frameMax | | | 帧大小最大 |
final int heartbeat | | | 心跳频率 |
1.5.2、可能使用场景
1.5.3、方法
- 基本跟Start类似
- void writeArgumentsTo(MethodArgumentWriter writer) 写属性顺序和成员变量表一样(去掉INDEX常量)
1.6、TuneOk类 extend Method implement TuneOk接口 (TODO)
1.6.1、成员变量
字段名 | 默认值 | 是否必填 | 描述 |
---|
final int INDEX | 30 | | 表示这个子类(methodId) |
final int channelMax | | | 通道最大数 |
final int frameMax | | | 帧大小最大 |
final int heartbeat | | | 心跳频率 |
1.6.2、可能使用场景
1.6.3、方法
- 基本跟Start类似
- void writeArgumentsTo(MethodArgumentWriter writer) 写属性顺序和成员变量表一样(去掉INDEX常量)
1.7、Open类 extend Method implement Open接口
1.7.1、成员变量
字段名 | 默认值 | 是否必填 | 描述 |
---|
final int INDEX | 40 | | 表示这个子类(methodId) |
final String virtualHost | | 必填 | 虚拟主机 |
final String capabilities | | 必填 | 能力(目前不知道做啥) |
final boolean insist | | | 持久(TODO) |
1.7.2、可能使用场景
1.7.3、方法
- 基本跟Start类似
- void writeArgumentsTo(MethodArgumentWriter writer) 写属性顺序和成员变量表一样(去掉INDEX常量)
1.8、OpenOk类 extend Method implement OpenOk接口
1.8.1、成员变量
字段名 | 默认值 | 是否必填 | 描述 |
---|
final int INDEX | 41 | | 表示这个子类(methodId) |
final String knownHosts | | 必填 | 虚拟主机 |
1.8.2、可能使用场景
1.8.3、方法
- 基本跟Start类似
- void writeArgumentsTo(MethodArgumentWriter writer) 写属性顺序和成员变量表一样(去掉INDEX常量)
1.9、Close类 extend Method implement Close接口
1.9.1、成员变量
字段名 | 默认值 | 是否必填 | 描述 |
---|
final int INDEX | 50 | | 表示这个子类(methodId) |
final in replyCode | | | 回应编号 |
final String replyText | | 必填 | 回应文本 |
final int classId | | | |
final int methodId | | | |
1.9.2、可能使用场景
1.9.3、方法
- 基本跟Start类似
- void writeArgumentsTo(MethodArgumentWriter writer) 写属性顺序和成员变量表一样(去掉INDEX常量)
1.10、CloseOk类 extend Method implement CloseOk接口
1.10.1、成员变量
字段名 | 默认值 | 是否必填 | 描述 |
---|
final int INDEX | 51 | | 表示这个子类(methodId) |
1.10.2、可能使用场景
1.10.3、方法
- void writeArgumentsTo(MethodArgumentWriter writer)没有属性
1.11、Unblocked类 extend Method implement Unblocked接口
1.11.1、成员变量
字段名 | 默认值 | 是否必填 | 描述 |
---|
final int INDEX | 60 | | 表示这个子类(methodId) |
final String reason | | | 原因 |
1.11.2、可能使用场景
1.11.3、方法
- 基本跟Start类似
- void writeArgumentsTo(MethodArgumentWriter writer) 写属性顺序和成员变量表一样(去掉INDEX常量)
1.12、UnblockedOk类 extend Method implement UnblockedOk接口
1.12.1、成员变量
字段名 | 默认值 | 是否必填 | 描述 |
---|
final int INDEX | 61 | | 表示这个子类(methodId) |
1.12.2、可能使用场景
1.12.3、方法
- void writeArgumentsTo(MethodArgumentWriter writer)没有属性
2、Channel
2.1、Open类 extend Method implement Open接口
2.1.1、成员变量
字段名 | 默认值 | 是否必填 | 描述 |
---|
final int INDEX | 10 | | 表示这个子类(methodId) |
final String outOfBand | | | TODO |
2.1.2、可能使用场景
2.1.3、方法
- 基本跟Start类似
- void writeArgumentsTo(MethodArgumentWriter writer) 写属性顺序和成员变量表一样(去掉INDEX常量)
2.2、OpenOk类 extend Method implement OpenOk接口
2.2.1、成员变量
字段名 | 默认值 | 是否必填 | 描述 |
---|
final int INDEX | 11 | | 表示这个子类(methodId) |
final LongString channelId | | | TODO |
2.2.2、可能使用场景
2.2.3、方法
- 基本跟Start类似
- void writeArgumentsTo(MethodArgumentWriter writer) 写属性顺序和成员变量表一样(去掉INDEX常量)
2.3、Flow类 extend Method implement Flow接口
2.3.1、成员变量
字段名 | 默认值 | 是否必填 | 描述 |
---|
final int INDEX | 20 | | 表示这个子类(methodId) |
final boolean active | | | TODO(是否激活状态) |
2.3.2、可能使用场景
2.3.3、方法
- 基本跟Start类似
- void writeArgumentsTo(MethodArgumentWriter writer) 写属性顺序和成员变量表一样(去掉INDEX常量)
2.4、FlowOk类 extend Method implement FlowOk接口
2.4.1、成员变量
字段名 | 默认值 | 是否必填 | 描述 |
---|
final int INDEX | 20 | | 表示这个子类(methodId) |
final boolean active | | | TODO(是否激活状态) |
2.4.2、可能使用场景
2.4.3、方法
- 基本跟Start类似
- void writeArgumentsTo(MethodArgumentWriter writer) 写属性顺序和成员变量表一样(去掉INDEX常量)
2.5、Close类 extend Method implement Close接口
2.5.1、成员变量
字段名 | 默认值 | 是否必填 | 描述 |
---|
final int INDEX | 40 | | 表示这个子类(methodId) |
final in replyCode | | | 回应编号 |
final String replyText | | 必填 | 回应文本 |
final int classId | | | |
final int methodId | | | |
2.5.2、可能使用场景
2.5.3、方法
- 基本跟Start类似
- void writeArgumentsTo(MethodArgumentWriter writer) 写属性顺序和成员变量表一样(去掉INDEX常量)
2.6、CloseOk类 extend Method implement CloseOk接口
2.6.1、成员变量
字段名 | 默认值 | 是否必填 | 描述 |
---|
final int INDEX | 41 | | 表示这个子类(methodId) |
| | | |
2.6.2、可能使用场景
2.6.3、方法
- void writeArgumentsTo(MethodArgumentWriter writer)没有属性
3、Access
3.1、Request类 extend Method implement Request接口
3.1.1、成员变量
字段名 | 默认值 | 是否必填 | 描述 |
---|
final int INDEX | 10 | | 表示这个子类(methodId) |
final String realm | | 必填 | TODO |
boolean exclusive | | | |
boolean passive | | | |
boolean active | | | |
boolean write | | | |
boolean read | | | |
3.1.2、可能使用场景
3.1.3、方法
- 基本跟Start类似
- void writeArgumentsTo(MethodArgumentWriter writer) 写属性顺序和成员变量表一样(去掉INDEX常量)
3.2、RequestOk类 extend Method implement RequestOk接口
3.2.1、成员变量
字段名 | 默认值 | 是否必填 | 描述 |
---|
final int INDEX | 10 | | 表示这个子类(methodId) |
final int ticket | | | |
3.2.2、可能使用场景
3.2.3、方法
- 基本跟Start类似
- void writeArgumentsTo(MethodArgumentWriter writer) 写属性顺序和成员变量表一样(去掉INDEX常量)
4、Exchange
4.1、Declare类 extend Method implement Declare接口
4.1.1、成员变量
字段名 | 默认值 | 是否必填 | 描述 |
---|
final int INDEX | 10 | | 表示这个子类(methodId) |
final int ticket | | | 访问的票据 |
final String exchange | | | 交换器 |
final String type | | | 类型 |
final boolean passive | | | |
final boolean durable | | | |
final boolean autoDelete | | | 是否自动删除 |
final boolean internal | | | |
final boolean nowait | | | |
final Map<String, Object> arguments | | | |
4.1.2、可能使用场景
4.1.3、方法
- 基本跟Start类似
- void writeArgumentsTo(MethodArgumentWriter writer) 写属性顺序和成员变量表一样(去掉INDEX常量)
4.2、DeclareOk类 extend Method implement DeclareOk接口
4.2.1、成员变量
字段名 | 默认值 | 是否必填 | 描述 |
---|
final int INDEX | 11 | | 表示这个子类(methodId) |
4.2.2、可能使用场景
4.2.3、方法
- 基本跟Start类似
- void writeArgumentsTo(MethodArgumentWriter writer) 不支持
4.3、Delete类 extend Method implement Delete接口
4.3.1、成员变量
字段名 | 默认值 | 是否必填 | 描述 |
---|
final int INDEX | 20 | | 表示这个子类(methodId) |
final int ticket | | | 访问的票据 |
final String exchange | | | 交换器 |
final boolean ifUnused | | | 类型 |
final boolean nowait | | | |
4.3.2、可能使用场景
4.3.3、方法
- 基本跟Start类似
- void writeArgumentsTo(MethodArgumentWriter writer) 写属性顺序和成员变量表一样(去掉INDEX常量)
4.4、DeleteOk类 extend Method implement DeleteOk接口
4.4.1、成员变量
字段名 | 默认值 | 是否必填 | 描述 |
---|
final int INDEX | 21 | | 表示这个子类(methodId) |
4.4.2、可能使用场景
4.4.3、方法
- 基本跟Start类似
- void writeArgumentsTo(MethodArgumentWriter writer) 不支持
4.5、Bind类 extend Method implement Bind接口
4.5.1、成员变量
字段名 | 默认值 | 是否必填 | 描述 |
---|
final int INDEX | 30 | | 表示这个子类(methodId) |
final int ticket | | | 访问的票据 |
final String destination | | 必填 | 目的地 |
final String source | | 必填 | |
final String routingKey | | 必填 | |
final boolean nowait | | | |
final Map<String, Object> arguments | | | |
4.5.2、可能使用场景
4.5.3、方法
- 基本跟Start类似
- void writeArgumentsTo(MethodArgumentWriter writer) 写属性顺序和成员变量表一样(去掉INDEX常量)
4.6、BindOk类 extend Method implement BindOk接口
4.6.1、成员变量
字段名 | 默认值 | 是否必填 | 描述 |
---|
final int INDEX | 31 | | 表示这个子类(methodId) |
4.6.2、可能使用场景
4.6.3、方法
- 基本跟Start类似
- void writeArgumentsTo(MethodArgumentWriter writer) 不支持
4.7、UnBind类 extend Method implement UnBind接口
4.7.1、成员变量
字段名 | 默认值 | 是否必填 | 描述 |
---|
final int INDEX | 40 | | 表示这个子类(methodId) |
final int ticket | | | 访问的票据 |
final String destination | | 必填 | 目的地 |
final String source | | 必填 | |
final String routingKey | | 必填 | |
final boolean nowait | | | |
final Map<String, Object> arguments | | | |
4.7.2、可能使用场景
4.7.3、方法
- 基本跟Start类似
- void writeArgumentsTo(MethodArgumentWriter writer) 写属性顺序和成员变量表一样(去掉INDEX常量)
4.8、UnBindOk类 extend Method implement UnBindOk接口
4.8.1、成员变量
字段名 | 默认值 | 是否必填 | 描述 |
---|
final int INDEX | 31 | | 表示这个子类(methodId) |
4.8.2、可能使用场景
4.8.3、方法
- 基本跟Start类似
- void writeArgumentsTo(MethodArgumentWriter writer) 不支持
5、Queue
5.1、Declare类 extend Method implement Declare接口
5.1.1、成员变量
字段名 | 默认值 | 是否必填 | 描述 |
---|
final int INDEX | 10 | | 表示这个子类(methodId) |
final int ticket | | | 访问的票据 |
final String queue | | | 交换器 |
final boolean passive | | | |
final boolean durable | | | |
final boolean exclusive | | | |
final boolean autoDelete | | | 是否自动删除 |
final boolean nowait | | | |
final Map<String, Object> arguments | | | |
5.1.2、可能使用场景
5.1.3、方法
- 基本跟Start类似
- void writeArgumentsTo(MethodArgumentWriter writer) 写属性顺序和成员变量表一样(去掉INDEX常量)
5.2、DeclareOk类 extend Method implement DeclareOk接口
5.2.1、成员变量
字段名 | 默认值 | 是否必填 | 描述 |
---|
final int INDEX | 11 | | 表示这个子类(methodId) |
final String queue | | | |
final int messageCount | | | |
final int consumerCount | | | |
5.2.2、可能使用场景
5.2.3、方法
- 基本跟Start类似
- void writeArgumentsTo(MethodArgumentWriter writer) 写属性顺序和成员变量表一样(去掉INDEX常量)
5.3、Bind类 extend Method implement Bind接口
5.3.1、成员变量
字段名 | 默认值 | 是否必填 | 描述 |
---|
final int INDEX | 20 | | 表示这个子类(methodId) |
final int ticket | | | 访问的票据 |
final String queue | | 必填 | 队列 |
final String exchange | | 必填 | 交换器 |
final String routingKey | | 必填 | |
final boolean nowait | | | |
final Map<String, Object> arguments | | | |
5.3.2、可能使用场景
5.3.3、方法
- 基本跟Start类似
- void writeArgumentsTo(MethodArgumentWriter writer) 写属性顺序和成员变量表一样(去掉INDEX常量)
5.4、BindOk类 extend Method implement BindOk接口
5.4.1、成员变量
字段名 | 默认值 | 是否必填 | 描述 |
---|
final int INDEX | 21 | | 表示这个子类(methodId) |
5.4.2、可能使用场景
5.4.3、方法
- 基本跟Start类似
- void writeArgumentsTo(MethodArgumentWriter writer) 不支持
5.5、Purge类 extend Method implement Purge接口
5.5.1、成员变量
字段名 | 默认值 | 是否必填 | 描述 |
---|
final int INDEX | 30 | | 表示这个子类(methodId) |
final int ticket | | | 访问的票据 |
final String queue | | 必填 | 队列 |
final boolean nowait | | | |
5.5.2、可能使用场景
5.5.3、方法
- 基本跟Start类似
- void writeArgumentsTo(MethodArgumentWriter writer) 写属性顺序和成员变量表一样(去掉INDEX常量)
5.6、PurgeOk类 extend Method implement PurgeOk接口
5.6.1、成员变量
字段名 | 默认值 | 是否必填 | 描述 |
---|
final int INDEX | 31 | | 表示这个子类(methodId) |
final int messageCount | | | 消息数量 |
5.6.2、可能使用场景
5.6.3、方法
- 基本跟Start类似
- void writeArgumentsTo(MethodArgumentWriter writer) 写属性顺序和成员变量表一样(去掉INDEX常量)
5.7、Delete类 extend Method implement Delete接口
5.7.1、成员变量
字段名 | 默认值 | 是否必填 | 描述 |
---|
final int INDEX | 40 | | 表示这个子类(methodId) |
final int ticket | | | 访问的票据 |
final String queue | | 必填 | 队列 |
final boolean ifUnused | | | |
final boolean nowait | | | |
final boolean nowait | | | |
5.7.2、可能使用场景
5.7.3、方法
- 基本跟Start类似
- void writeArgumentsTo(MethodArgumentWriter writer) 写属性顺序和成员变量表一样(去掉INDEX常量)
5.8、DeleteOk类 extend Method implement DeleteOk接口
5.8.1、成员变量
字段名 | 默认值 | 是否必填 | 描述 |
---|
final int INDEX | 41 | | 表示这个子类(methodId) |
final int messageCount | | | 消息 |
5.8.2、可能使用场景
5.8.3、方法
- 基本跟Start类似
- void writeArgumentsTo(MethodArgumentWriter writer) 写属性顺序和成员变量表一样(去掉INDEX常量)
5.9、Unbind类 extend Method implement Unbind接口
5.9.1、成员变量
字段名 | 默认值 | 是否必填 | 描述 |
---|
final int INDEX | 50 | | 表示这个子类(methodId) |
final int ticket | | | 访问的票据 |
final String queue | | 必填 | 队列 |
final String exchange | | 必填 | 交换器 |
final String routingKey | | 必填 | |
Map<String, Object> arguments | | | |
5.9.2、可能使用场景
5.9.3、方法
- 基本跟Start类似
- void writeArgumentsTo(MethodArgumentWriter writer) 写属性顺序和成员变量表一样(去掉INDEX常量)
5.10、UnbindOk类 extend Method implement UnbindOk接口
5.10.1、成员变量
字段名 | 默认值 | 是否必填 | 描述 |
---|
final int INDEX | 51 | | 表示这个子类(methodId) |
5.10.2、可能使用场景
5.10.3、方法
- 基本跟Start类似
- void writeArgumentsTo(MethodArgumentWriter writer) 不支持
6、Basic
6.1、Qos类 extend Method implement Qos接口
6.1.1、成员变量
字段名 | 默认值 | 是否必填 | 描述 |
---|
final int INDEX | 10 | | 表示这个子类(methodId) |
final int prefetchSize | | | |
final int prefetchCount | | | |
final boolean global | | | |
6.1.2、可能使用场景
6.1.3、方法
- 基本跟Start类似
- void writeArgumentsTo(MethodArgumentWriter writer) 写属性顺序和成员变量表一样(去掉INDEX常量)
6.2、Qos类 extend Method implement Qos接口
6.2.1、成员变量
字段名 | 默认值 | 是否必填 | 描述 |
---|
final int INDEX | 11 | | 表示这个子类(methodId) |
6.2.2、可能使用场景
6.2.3、方法
- 基本跟Start类似
- void writeArgumentsTo(MethodArgumentWriter writer) 不支持
6.3、Consume类 extend Method implement Consume接口
6.3.1、成员变量
字段名 | 默认值 | 是否必填 | 描述 |
---|
final int INDEX | 20 | | 表示这个子类(methodId) |
final int ticket | | | |
final String queue | | 必填 | |
final String consumerTag | | 必填 | 消费标签 |
boolean noLocal | | | |
boolean noAck | | | |
boolean exclusive | | | |
boolean nowait | | | |
Map<String, Object> arguments | | | |
6.3.2、可能使用场景
6.3.3、方法
- 基本跟Start类似
- void writeArgumentsTo(MethodArgumentWriter writer) 写属性顺序和成员变量表一样(去掉INDEX常量)
6.4、ConsumeOk类 extend Method implement ConsumeOk接口
6.4.1、成员变量
字段名 | 默认值 | 是否必填 | 描述 |
---|
final int INDEX | 21 | | 表示这个子类(methodId) |
final String consumerTag | | 必填 | 消费标签 |
6.4.2、可能使用场景
6.4.3、方法
- 基本跟Start类似
- void writeArgumentsTo(MethodArgumentWriter writer) 写属性顺序和成员变量表一样(去掉INDEX常量)
6.5、Cancel类 extend Method implement Cancel接口
6.5.1、成员变量
字段名 | 默认值 | 是否必填 | 描述 |
---|
final int INDEX | 30 | | 表示这个子类(methodId) |
final String consumerTag | | 必填 | 消费标签 |
final boolean nowait | | | |
6.5.2、可能使用场景
6.5.3、方法
- 基本跟Start类似
- void writeArgumentsTo(MethodArgumentWriter writer) 写属性顺序和成员变量表一样(去掉INDEX常量)
6.6、CancelOk类 extend Method implement CancelOk接口
6.6.1、成员变量
字段名 | 默认值 | 是否必填 | 描述 |
---|
final int INDEX | 31 | | 表示这个子类(methodId) |
final String consumerTag | | 必填 | 消费标签 |
6.6.2、可能使用场景
6.6.3、方法
- 基本跟Start类似
- void writeArgumentsTo(MethodArgumentWriter writer) 写属性顺序和成员变量表一样(去掉INDEX常量)
6.7、Pulish类 extend Method implement Pulish接口
6.7.1、成员变量
字段名 | 默认值 | 是否必填 | 描述 |
---|
final int INDEX | 40 | | 表示这个子类(methodId) |
final int ticket | | | |
final String exchange | | 必填 | |
final String routingKey | | 必填 | |
final boolean mandatory | | | |
final boolean imediate | | | |
6.7.2、可能使用场景
6.7.3、方法
- 基本跟Start类似
- void writeArgumentsTo(MethodArgumentWriter writer) 写属性顺序和成员变量表一样(去掉INDEX常量)
6.8、Return类 extend Method implement Return接口
6.8.1、成员变量
字段名 | 默认值 | 是否必填 | 描述 |
---|
final int INDEX | 50 | | 表示这个子类(methodId) |
final int replyCode | | | |
final String replyText | | 必填 | |
final String exchange | | 必填 | |
final String routingKey | | 必填 | |
6.8.2、可能使用场景
6.8.3、方法
- 基本跟Start类似
- void writeArgumentsTo(MethodArgumentWriter writer) 写属性顺序和成员变量表一样(去掉INDEX常量)
6.9、Deliver类 extend Method implement Deliver接口
6.9.1、成员变量
字段名 | 默认值 | 是否必填 | 描述 |
---|
final int INDEX | 60 | | 表示这个子类(methodId) |
final String consumerTag | | 必填 | |
final long deliveryTag | | | |
final boolean redelivered | | | |
final String exchange | | 必填 | |
final String routingKey | | 必填 | |
6.9.2、可能使用场景
6.9.3、方法
- 基本跟Start类似
- void writeArgumentsTo(MethodArgumentWriter writer) 写属性顺序和成员变量表一样(去掉INDEX常量)
6.10、Get类 extend Method implement Get接口
6.10.1、成员变量
字段名 | 默认值 | 是否必填 | 描述 |
---|
final int INDEX | 70 | | 表示这个子类(methodId) |
final int ticket | | | |
final String queue | | 必填 | |
boolean noAck | | | |
6.10.2、可能使用场景
6.10.3、方法
- 基本跟Start类似
- void writeArgumentsTo(MethodArgumentWriter writer) 写属性顺序和成员变量表一样(去掉INDEX常量)
6.11、GetOk类 extend Method implement GetOk接口
6.11.1、成员变量
字段名 | 默认值 | 是否必填 | 描述 |
---|
final int INDEX | 71 | | 表示这个子类(methodId) |
final long deliveryTag | | | |
final boolean redelivered | | | |
final String exchange | | 必填 | |
final String routingKey | | 必填 | |
final int messageCount | | | |
6.11.2、可能使用场景
6.11.3、方法
- 基本跟Start类似
- void writeArgumentsTo(MethodArgumentWriter writer) 写属性顺序和成员变量表一样(去掉INDEX常量)
6.12、GetEmpty类 extend Method implement GetEmpty接口
6.12.1、成员变量
字段名 | 默认值 | 是否必填 | 描述 |
---|
final int INDEX | 72 | | 表示这个子类(methodId) |
final String clusterId | | | 集群id |
6.12.2、可能使用场景
6.12.3、方法
- 基本跟Start类似
- void writeArgumentsTo(MethodArgumentWriter writer) 写属性顺序和成员变量表一样(去掉INDEX常量)
6.13、Ack类 extend Method implement Ack接口
6.13.1、成员变量
字段名 | 默认值 | 是否必填 | 描述 |
---|
final int INDEX | 80 | | 表示这个子类(methodId) |
final long deliveryTag | | | |
boolean multiple | | | |
6.12.2、可能使用场景
6.13.3、方法
- 基本跟Start类似
- void writeArgumentsTo(MethodArgumentWriter writer) 写属性顺序和成员变量表一样(去掉INDEX常量)
6.14、Reject类 extend Method implement Reject接口
6.14.1、成员变量
字段名 | 默认值 | 是否必填 | 描述 |
---|
final int INDEX | 90 | | 表示这个子类(methodId) |
final long deliveryTag | | | |
boolean requeue | | | 是否重新入队 |
6.14.2、可能使用场景
6.14.3、方法
- 基本跟Start类似
- void writeArgumentsTo(MethodArgumentWriter writer) 写属性顺序和成员变量表一样(去掉INDEX常量)
6.15、RecoverAsync类 extend Method implement RecoverAsync接口
6.15.1、成员变量
字段名 | 默认值 | 是否必填 | 描述 |
---|
final int INDEX | 100 | | 表示这个子类(methodId) |
final boolean requeue | | | 重新入队 |
6.15.2、可能使用场景
6.15.3、方法
- 基本跟Start类似
- void writeArgumentsTo(MethodArgumentWriter writer) 写属性顺序和成员变量表一样(去掉INDEX常量)
6.16、Recover类 extend Method implement Recover接口
6.16.1、成员变量
字段名 | 默认值 | 是否必填 | 描述 |
---|
final int INDEX | 110 | | 表示这个子类(methodId) |
final boolean requeue | | | 重新入队 |
6.16.2、可能使用场景
6.16.3、方法
- 基本跟Start类似
- void writeArgumentsTo(MethodArgumentWriter writer) 写属性顺序和成员变量表一样(去掉INDEX常量)
6.17、RecoverOk类 extend Method implement RecoverOk接口
6.17.1、成员变量
字段名 | 默认值 | 是否必填 | 描述 |
---|
final int INDEX | 110 | | 表示这个子类(methodId) |
6.17.2、可能使用场景
6.17.3、方法
- 基本跟Start类似
- void writeArgumentsTo(MethodArgumentWriter writer) 不支持
6.18、Nack类 extend Method implement Nack接口
6.18.1、成员变量
字段名 | 默认值 | 是否必填 | 描述 |
---|
final int INDEX | 120 | | 表示这个子类(methodId) |
final long deliveryTag | | | |
final boolean multiple | | | |
final boolean requeue | | | |
6.18.2、可能使用场景
6.18.3、方法
- 基本跟Start类似
- void writeArgumentsTo(MethodArgumentWriter writer) 写属性顺序和成员变量表一样(去掉INDEX常量)
7、Tx
7.1、Select类 extend Method implement Select接口
7.1.1、成员变量
字段名 | 默认值 | 是否必填 | 描述 |
---|
final int INDEX | 10 | | 表示这个子类(methodId) |
7.1.2、可能使用场景
7.1.3、方法
- 基本跟Start类似
- void writeArgumentsTo(MethodArgumentWriter writer)不支持
7.2、SelectOk类 extend Method implement SelectOk接口
7.2.1、成员变量
字段名 | 默认值 | 是否必填 | 描述 |
---|
final int INDEX | 11 | | 表示这个子类(methodId) |
7.2.2、可能使用场景
7.2.3、方法
- 基本跟Start类似
- void writeArgumentsTo(MethodArgumentWriter writer)不支持
7.3、Commit类 extend Method implement Commit接口
7.3.1、成员变量
字段名 | 默认值 | 是否必填 | 描述 |
---|
final int INDEX | 20 | | 表示这个子类(methodId) |
7.3.2、可能使用场景
7.3.3、方法
- 基本跟Start类似
- void writeArgumentsTo(MethodArgumentWriter writer)不支持
7.4、CommitOk类 extend Method implement CommitOk接口
7.4.1、成员变量
字段名 | 默认值 | 是否必填 | 描述 |
---|
final int INDEX | 21 | | 表示这个子类(methodId) |
7.4.2、可能使用场景
7.4.3、方法
- 基本跟Start类似
- void writeArgumentsTo(MethodArgumentWriter writer)不支持
7.5、Rollback类 extend Method implement Rollback接口
7.5.1、成员变量
字段名 | 默认值 | 是否必填 | 描述 |
---|
final int INDEX | 30 | | 表示这个子类(methodId) |
7.5.2、可能使用场景
7.5.3、方法
- 基本跟Start类似
- void writeArgumentsTo(MethodArgumentWriter writer)不支持
7.6、RollbackOk类 extend Method implement RollbackOk接口
7.6.1、成员变量
字段名 | 默认值 | 是否必填 | 描述 |
---|
final int INDEX | 31 | | 表示这个子类(methodId) |
7.6.2、可能使用场景
7.6.3、方法
- 基本跟Start类似
- void writeArgumentsTo(MethodArgumentWriter writer)不支持
8、Confirm
8.1、Select类 extend Method implement Select接口
8.1.1、成员变量
字段名 | 默认值 | 是否必填 | 描述 |
---|
final int INDEX | 10 | | 表示这个子类(methodId) |
final boolean nowait | | | |
8.1.2、可能使用场景
8.1.3、方法
- 基本跟Start类似
- void writeArgumentsTo(MethodArgumentWriter writer)写属性顺序和成员变量表一样(去掉INDEX常量)
8.2、SelectOk类 extend Method implement SelectOk接口
8.2.1、成员变量
字段名 | 默认值 | 是否必填 | 描述 |
---|
final int INDEX | 11 | | 表示这个子类(methodId) |
8.2.2、可能使用场景
8.2.3、方法
- 基本跟Start类似
- void writeArgumentsTo(MethodArgumentWriter writer)不支持
9、MethodVisitor
10、DefaultMethodVisitor
- MethodVisitor默认实现, 也就不支持Visit操作
11、readMethodFrom方法
-
采用switch case, 两层switch case
-
int classId = in.readShort();
int methodId = in.readShort();
-
根据classId 和methodId确定创建那个实现Method对象
12、readContentHeaderFrom方法
13、总结
- 主要了解method的具体实现,不同指令它属性不一样
- 也算有个大概印象,到时候看具体逻辑可能联系到这里来