AMQP协议

一、前言

RabbitMQ是基于AMQP协议的,因此要使用好RabbitMQ,需要先了解该协议。

AMQP全称:Advanced Message Queuing protocol(译文:高级消息队列协议)

二、AMQP核心概念

1、broker

又称server,接受客户端的连接,实现AMQP实体服务。

2、connection

连接,应用程序与Broker的网络连接

3、channel

网络信道,几乎所有的操作都在Channel中进行,Channel 是进行消息读写的通道。

客户端可以建立多个Channel,每个Channel代表一个会话任务。

4、message

消息,服务器和应用程序之间传送的数据,由properties和body组成。

Properties可以对消息进行修饰,比如消息的优先级、延迟等高级特性。

body就是发送的消息内容。

5、queue

消息队列,保存消息并将它们转发给消费者

6、exchange

交换机,用于接收消息,根据路由键转发消息到绑定的队列

7、binding

exchange和queue之间的虚拟连接,binding中可以包含routing key

8、routing key

一个路由规则,虚拟机可以用它来确定如何路由一个特定消息

9、virtual host

虚拟机,用于进行逻辑隔离,它是最上层的消息路由。它是一个逻辑概念,用于划分隔离多个服务。

一个virtual host里面可以有若干个exchange和queue。

同一个virtual host里面不能有相同名称的exchange或queue。

三、AMQP 整体架构

四、RabbitMQ 消息是如何流转的