一、AMQP协议
AMQP (Advanced Message Queuing Protocol)高级消息队列协议,是具有现代特征的二进制协议。是一个提供统一消息服务的应用层标准高级消息队列协议,是应用层协议的一个开放标准,为面对消息的中间件设计。
二、AMQP协议模型
生产者产生消息发生至Borker也就是RabbitMQ里面,进入某个 Virtual host(Virtual Host 主要是对 Broker进行一个逻辑分离)通过Exchange 与 Message Queue进行一个绑定,消费者 从Message Queue 读取消息。
三、核心概念
Broker: 接收和分发消息的应用,此处就可以理解为RabbitMQ服务。
Connection: publisher/consumer和broker之间的TCP连接。
Channel: 网络信道,是进行消息读写的通道。
Channel是在connection内部建立的逻辑连接,Channel作为轻量级的Connection极大减少了操作系统建立TCP connection的开销。
Message: 消息,服务器和应用程序直接传送的数据,由Properties和Body组成。Properties可以对消息进行修饰,比如消息的优先级、延迟等特性,Body是消息体内容。
Virtual host: 虚拟地址,用于逻辑隔离,最上层的消息路由,一个Virtual host 里面可以有多个Exchange和Queue,同一个Virtual host 里面不能有相同名称的Exchange和Queue。
Exchange: 交换机,接受消息,根据路由键转发到绑定的队列。
BinDing: Exchange和Queue直接的虚拟连接,Binding中可以包含Routing Key。
Routing Key: 一个路由规则,虚拟机可以用它来确定如何路由一个特定的消息。
Queue: 消息队列,保存消息并转发给消费者