最近在弄openstack,里面普遍用消息队列作为服务内部的通信,ceilometer则是openstack中最大的消费者,但本人对消息队列却一窍不通,实在惭愧,打算拜读一下相关的书籍,摘掉小白的帽子,挑中一本RabbitMQ实战 高效部署分布式消息队列,就是下面这个铲屎工。
好不容易看到第二章,发现书上开始贴代码来讲述了,身为码农,当然也得跟着敲几下,但是敲这个代码得装个rabbitmq,看了几个教程发现这个安装rabbitmq似乎不是那么的轻松,最后还是自己摸索一番,看着官网的教程https://www.rabbitmq.com/install-rpm.html来怼。
失败的尝试
官网的教程介绍了好几种方法,我英文不好,看不太懂,就挑个最短的来照办,叫做EPEL安装,我用的是centos6.6,按着http://fedoraproject.org/wiki/EPEL/FAQ#howtouse说的,敲入如下命令(输出省略):
1 | rpm -Uvh http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm |
顺利安装完Erlang,然后继续安装rabbitmq server:
1 | yum install rabbitmq-server-3.6.6-1.noarch.rpm |
顺利报错:
1 | Error: Package: rabbitmq-server-3.6.6-1.el6.noarch (/rabbitmq-server-3.6.6-1.el6.noarch) |
大意就是说Erlang版本太低了,换个新的吧!
然后试一下zero dependency Erlang RPM package for running RabbitMQ这个,但是看到README里有这么一句话:
The package currently targets Erlang/OTP 19.0.x,19.1.x and 19.2.x. Only 64-bit packages are provided.
似乎是说只支持64-bit的。
成功的尝试
Erlang安装
因为在百度出来的教程似乎都比较复杂(这也是我第一次尝试用了EPEL的方式,因为看起来简单),而Erlang的教程出乎意料的简单,执行几个命令就行了:
1 | wget https://packages.erlang-solutions.com/erlang-solutions-1.0-1.noarch.rpm |
一切顺利。
RabbitMQ安装
这个也是几个命令的事:
1 | rpm --import https://www.rabbitmq.com/rabbitmq-release-signing-key.asc |
用python写rabbitmq的代码要用pika这个库,继续安装pika:
1 | wget https://pypi.python.org/packages/ee/25/1517ce612d7cd0a426ea027275ba74165bbfd86a2daf4bce4839afac3deb/pika-0.10.0.tar.gz#md5=db5025bc5abfb0f78573616ee846df31 |
两个demo
一切准备就绪,就开始贴代码运行了,先运行一个rabbitmq官网的hello world demo,代码就不贴出来了,上个效果图:
再来一个RabbitMQ实战 2.6章节的demo:
好了,现在rabbitmq的环境搭起来了,其他的章节以后再慢慢看吧。