AMQP协议本身包括三层。
1、Module Layer:位于协议最高层,主要定义了一些供客户端调用的命令,客户端可以利用这些命令实现自己的业务逻辑。例如,客户端可以使用Queue.Declare命令声明一个队列或者使用Basic.Consume订阅消费一个队列中的消息。
2、Session Layer:位于中间层,主要负责将客户端的命令发送给服务器,再将服务端的应答返回给客户端,主要为客户端与服务器之间的通信提供可靠性同步机制和错误处理。
3、Transport Layer:位于底层,主要传输二进制数据流,提供帧的处理、信道复用、错误检测和数据表示等。
AMQP说到底还是一个通信协议,通信协议都会涉及及报文交互,从low-level举例来说,AMQP本身是应用层的协议,其填充与TCP协议层的数据部分。而从high-level来说,AMQP是通过协议命令进行交互的。AMQP协议可以看作一系列结构化命令的集合。
AMQP生产者流转过程