深入理解AMQP 0-9-1 协议报文
一、协议报文总览
AMQP协议报文如下,分成五个部分。
1.type 类型,占1 byte。
2.channel 信道id,占2 byte。
3.size报文数据大小,占4 byte。
4.payload具体数据,占size byte。
5.结束符号 ,占1 byte。
0 1 3 7 size+7 size+8
+------+---------+---------+ +-------------+ +-----------+
| type | channel | size | | payload | | frame-end |
+------+---------+---------+ +-------------+ +-----------+
octet short long 'size' octets octet
一、协议报文类型
报文第一部分type 有4种类型
- type=1,各种方法接口报文。
- type=2,ContentHeaderBody具体数据报文的头。
- type=3,ContentBody具体数据报文的数据。
- type=8,心跳报文。
二、Server端接口报文类型
方法ID
|
方法
|
介绍
|
0x000a000b
|
ConnectionStartOk
|
开始连接协商
|
0x000a0015
|
ConnectionSecureOk
|
该方法选择SASL安全机制。
|
0x000a001f
|
ConnectionTuneOk
|
协商连接调整参数。
|
0x000a0028
|
ConnectionOpen
|
连接打开
|
0x000a0032 !v8
0x000a003c v8
|
ConnectionClose
|
连接关闭
|
0x000a0033 !v8
0x000a003d v8
|
ConnectionCloseOk
|
连接关闭确定
|
0x0014000a
|
ChannelOpen
|
信道打开
|
0x00140014
|
ChannelFlow
|
此方法要求对等方暂停或重新启动消费者发送的内容数据流。
这是一种简单的流量控制机制
|
0x00140015
|
ChannelFlowOk
|
flow的回复报文
|
0x00140028
|
ChannelClose
|
信道关闭
|
0x00140029
|
ChannelCloseOk
|
信道关闭确定
|
0x001e000a
|
AccessRequest
|
权限请求
|
0x0028000a
|
ExchangeDeclare
|
交换器声明
|
0x00280014
|
ExchangeDelete
|
交换器删除
|
0x00280016
|
ExchangeBound
|
交换器解绑
|
0x0032000a
|
QueueDeclare
|
队列声明
|
0x00320014
|
QueueBind
|
队列绑定
|
0x0032001e
|
QueuePurge
|
队列清除
|
0x00320028
|
QueueDelete
|
队列删除
|
0x00320032
|
QueueUnbind
|
队列解绑
|
0x003c000a
|
BasicQos
|
确定qos
|
0x003c0014
|
BasicConsume
|
消费
|
0x003c001e
|
BasicCancel
|
取消消费
|
0x003c0028
|
BasicPublish
|
生产
|
0x003c0046
|
BasicGet
|
拉取消息
|
0x003c0050
|
BasicAckBody
|
确认消息
|
0x003c005a
|
BasicReject
|
拒绝消息
|
0x003c0064
|
BasicRecover
|
是否恢复消息到队列
|
0x003c0066
0x003c006e
|
BasicRecoverSync
|
是否同步恢复消息到队列
|
0x003c0078
|
BasicNack
|
拒绝消息
|
0x0055000a
|
ConfirmSelect
|
生产确认模式
|
0x005a000a
|
receiveTxSelect
|
用于将当前信道设置为事务模式
|
0x005a0014
|
receiveTxCommit
|
用于事务提交
|
0x005a001e
|
receiveTxRollback
|
用于事务回滚
|