Fork me on GitHub

RabbitMQ学习总结

什么是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、创建

未完

相关博客链接:
http://blog.csdn.net/column/details/rabbitmq.html

-------------本文结束感谢您的阅读-------------
坚持原创技术分享,您的支持将鼓励我继续创作!
0%