什么是RabbitMQ
Message Queue(MQ),消息队列是一种应用程序对应用程序的通信方法。应用程序通过读写MQ的消息(针对应用程序的数据)来通信,而无需建立专用连接来链接它们。
MQ是消费者-生产模型的一个典型代表,一段不断写入消息,而另一段可以读取或者订阅队列中的消息。
MQ是遵循AMQP协议的具体实现和产品。
适用场景
RabbitMQ,或者说AMQP解决了什么问题,或者说它的应用场景是什么?
对于一个大型的软件系统来说,它会有很多的组件或者说模块或者说子系统或者(subsystem or Component or submodule)。那么这些模块的如何通信?这和传统的IPC有很大的区别。传统的IPC很多都是在单一系统上的,模块耦合性很大,不适合扩展(Scalability);如果使用socket那么不同的模块的确可以部署到不同的机器上,但是还是有很多问题需要解决。比如:
1)信息的发送者和接收者如何维持这个连接,如果一方的连接中断,这期间的数据如何方式丢失?
2)如何降低发送者和接收者的耦合度?
3)如何让Priority高的接收者先接到数据?
4)如何做到load balance?有效均衡接收者的负载?
5)如何有效的将数据发送到相关的接收者?也就是说将接收者subscribe 不同的数据,如何做有效的filter。
6)如何做到可扩展,甚至将这个通信模块发到cluster上?
7)如何保证接收者接收到了完整,正确的数据?
AMDQ协议解决了以上的问题,而RabbitMQ实现了AMQP。
安装部署
1、安装erlang
1)下载erlang源码,解压,进入$erlang目录,安装依赖包:
yum install tk
yum install tcl
yum install unixODBC
2)编译erlang
./configure –prefix=/usr/local/erlang
./make
./make install
3)将erlang的bin目录添加至PATH
2、安装RabitMQ
1)下载RabbitMQ,解压至$RMQ
2)启动RabbitMQ ./bin/rabbitmq-server start
实际使用
1、创建
未完