RabbitMQ 是一个由 Erlang 语言开发的 AMQP 的开源实现。RabbitMQ最初起源于金融系统,用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面表现不俗。

rabbit- 兔子,兔子的特点是什么? 轻盈,跳跃,灵活,速度快,也象征着这款MQ的特征-轻量级,高性能,所以起个好听的名字也很重要。

此文字为官网中对mq的介绍,这里重点是broker -按翻译意思是中间人、代理人也就是中介的意思,大家想,其实mq就是对消息处理的一个中介一个代理而已,A->queue->B , 像不像大家去买房租房找中介的场景,A与B不再交互,而是通过一个中间人的角色,A把消息给queue,queue把消息推给B,或B来queue去取。message broker= 消息代理, 那rabbitmq 也就是个消息代理中间件。
推荐大家读官网介绍:
官网:Messaging that just works — RabbitMQ
那rabbitmq 遵循的协议是AMQP。
AMQP :Advanced Message Queue Protocol,高级消息队列协议。它是应用层协议的一个开放标准,为面向消息的中间件设计,基于此协议的客户端与消息中间件可传递消息,并不受产品、开发语言等条件的限制。
如何证明呢?为什么说rabbitmq交互就使用了AMQP协议,我们可以使用 WrieShark 抓包看看:

大家也可以去下载对应的协议文档,做一次研读,例如我们常用的AMQP0-9-1
AMQP下载地址:AMQP Working Group 0-9-1 | AMQP
wireshark:Wireshark · Go Deep.

如上图相关模块介绍如下:
所以这里的重点是生产者将消息发送给了交换机,并非直接发到queue,而通过不同的交换机能实现不同的效果。后续介绍的重点就是此处。
【当创建交换机时需要指定类型(四种类型:直接Direct,扇出Fanout ,主题Topic ,消息头Headers )】
对于初学者,大家可能对这些概念容易混淆也不太好记忆,为了便于大家理解,我做了个模型。大家都对太阳能热水器不陌生吧,有没有觉得上面的mq架构图,用这个热水器来理解。

有没有很贴切,哈哈,^_^,咱们从左往右看
打开水龙头上水,小明直接洗冷水澡,存着水晒热后,小明再洗热水澡
rabbitmq安装不再重点介绍,此步骤需要将mq安装到本地或服务器即可。
另外配置好对应的用户,配置好使用的Virtual Host,为后续程序的连接做好准备!