基于Erlang的RabbitMQ 消息中间件的安装与基本使用及python,ruby api

(标题写全面点有利于搜索 m-_-m)

简介
看这个 slide: http://www.slideshare.net/somic/introduction-to-amqp-messaging-with-rabb...

RabbitMQ 是基于Erlang开发的消息中间件,后面省略企业级套话252字,简单的说它可以用来在不同应用间传递消息和数据。我喜欢Rabbit。

下载:
http://www.rabbitmq.com/server.html 这个页面上有,各找各妈。(macosx的童鞋请选择 Packaged for generic Unix systems)。

安装:
以windows为例,安装Packaged for Windows systems 版本,先安装一个 erlang环境,在这个package中自带了一个,然后把 rabbitmq_server-版本号 这个目录copy到erlang 的lib目录下,或者通过在shell中设置 ERLANG_HOME变量指定erlang的目录。可以说 RabbitMQ是免安装的。

运行:
rabbit_server-1.4.0/sbin/rabbitmq-server.bat

-----
客户端api

java客户端在下载的包中已经有了,出于对java的敬畏,这里就不说了。
Ruby的客户端api可以在 http://cwiki.apache.org/qpid/ Apache的 Qpid 中得到。 一点提示,要使用这个版本的api,需要使用官方下载的 amqp0-8.xml spec文件。
Python的客户端, 虽然 Qpid中也提供了python的库,但经过我的测试,可耻的失败了。在 client.start 的时候总是提示 Peer closed. 在三个平台上都测试过了,看来不是我的问题。
还有,有一个可用的库: http://barryp.org/software/py-amqplib/ 这里使用它的最新的0.5 版本。 安装很easy : python setup.py install.

测试:
为了充分体现RabbitMQ的跨平台能力,我在三台机器(Winxp, macosx, Linux)上分别运行 RabbitMQ server, publisher client, consumer client
采用 py-amqplib 源代码中的 demo目录中的 demo_send.py, demo_receive.py

接收端:
./demo_receive.py --host= -u guest -p guest
发送端:
python demo_send.py --host= -u guest -p guest "test it"

然后在接收端的屏幕上就出现了 test it 的信息,哇,好神奇啊 -_-!