一、RabbitMQ说明。
MQ全称为Message Queue, 消息队列(MQ)是一种应用程序对应用程序的通信方法。应用程序通过读写出入队列的消息(针对应用程序的数据)来通信,而无需专用连接来链接它们。MQ是消费-生产者模型的一个典型的代表,一端往消息队列中不断写入消息,而另一端则可以读取或者订阅队列中的消息。
RabbitMQ是一个由erlang开发的基于AMQP(Advanced Message Queuing Protocol)协议的开源实现。用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面都非常的优秀。
二、RabbitMQ结构图。
RabbitMQ结构图如下:

三、RabbitMQ概念说明。
Producer: 消息生产者(上图的蓝色P框),就是投递消息的程序。
Consumer:消息消费者(上图的蓝色C框),就是接受消息的程序。
vhost:虚拟主机,RabbitMQ 通过虚拟主机来分发消息。拥有自己独立的权限控制,不同的vhost之间是隔离的,单独的。一个broker里可以开设多个vhost,用作不同用户的权限分离。默认用户”guest” 密码“guest”,来访问默认的vhost。
channel:消息通道,在客户端的每个连接里,可建立多个channel,每个channel代表一个会话任务。
broker:消息转发者,也就是我们RabbitMQ服务端充当的功能了。
Exchange:消息交换机(上图的绿色方框)。他是和Producer直接进行打交道的,有点类似于路由器的功能,主要就是进行转发操作。那么Producer到底用哪个Exchange进行路由呢?这个取决于Routing Key,每个消息都有这个键,我们也可以自己设定,其实就是一字符串。
Queue:消息队列(上图的红色框),接收Exchange路由过来的消息。由Binding决定队列接收哪个Exchange的消息。
Routing Key:路由关键字(可理解为上图P、X之间的连线)。Exchange根据这个关键字进行消息投递。
Binding:绑定(可理解为上图的绿色、红色框之间的连线)。作用就是把Exchange和Queue按照路由规则绑定起来。
以上就是RabbitMQ的简单介绍。后续详细介绍RabbitMQ安装部署、RabbitMQ的四种Exchange模式等。




