一、简介
一开始,消息队列源自于一个激进的工程师的思想,他希望有一种通用软件“总线”能解决程序间繁重的信息通信工作
后来出现了很多消息队列产品,但是他们互不兼容,价格昂贵
后来出现了AMQP,高级消息队列协议,作为标准
RabbitMQ基于AMQP,被开发出来
RabbitMQ特点:
- 除了Qpid,RabbitMQ是唯一实现了AMQP标准的代理服务器
- 基于Erlang,使得RabbitMQ集群十分简单
- RabbitMQ比其他消息队列服务器更可靠,更能防止崩溃
- 容易安装使用
二、消息通信原理
1、消费者、生产者
生产者:创建消息,发送到代理服务器(RabbitMQ)
消息:包括载荷(payload)和标签(lable)
消费者:连接到代理服务器(RabbitMQ),订阅队列(queue)。
信道(channel):应用程序与Rabbit的连接,首先创建一条TCP连接,然后创建一条AMQP信道;信道是“真实的”TCP连接内的虚拟连接;每条信道有唯一ID,AMQP命令从信道发送出去;
这是为了节省TCP连接所需的资源。一个TCP连接可以创建无线个AMQP信道,当需要发送信息时,则创建一条信道进行通信
2、队列
AMQP消息路由有3个部分:交换器、队列、绑定