Rabbir的安装、配置、监控
关于消息推送机制有很多:Activemq,这个还在使用过,只不多没有做过严格的测试;zeroMQ,明天可能会对这个进行测试吧;RabbitMQ,在网上查看资料发现,这个MQ到有很好的声誉,相比Activemq有很多人说是发现消息丢失,但是这个没有,稍微测试了一下,发送很大的文件也是可以的。这里是看到一个博主在其某篇博文的开始写的一段话,摘录下来共勉:
发现我有好几篇blog的前缀都是用的“不简单”,它大概描述了这样一个状态:一个看起来很简单的任务在实践之后,发现其实很不容易。很多事情都是这样,如果不是亲自去做,如果不是仔细钻研,那就只能处于雾里看花的状态。
这让我想到另一个故事,在我毕业的那年曾经被某公司的CTO面试,他和我说过一句话让我至今记忆犹新,他跟我说技术其实是很简单的(几年后某位大牛也和我表达过类似的意思)。我一直琢磨这句话的含义,现在理解,他的意思应该是指无论多难的技术,只要你用心,总是能够学习和掌握的。
简单或者不简单,其实不是技术,而是我们做事的态度。
一、安装
RabbitMQ是基于Erlang的,所以首先必须配置Erlang环境。
从Erlang的官网 http://www.erlang.org/download.html 下载最新的erlang安装包,我下载的版本是 otp_src_R14B03.tar.gz 。
然后:
$ tar xvzf otp_src_R14B03.tar.gz
$ cd otp_src_R14B03
$ ./configure
编译后的输出如下图:
提示没有wxWidgets和fop,但是问题不大。继续:
$ make
$ sudo make install
“By default, Erlang/OTP will be installed in `/usr/local/{bin,lib/erlang}`. To instead install in `<BaseDir>/{bin,lib/erlang}`, use the `--prefix=<BaseDir>`
option.”
安装完Erlang,开始安装RabbitMQ-Server。
主要参考官方文档: http://www.rabbitmq.com/build-server.html
需要安装一个比较新的Python版本。安装略。
需要安装simplejson。从此处下载最新的版本: http://pypi.python.org/pypi/simplejson#downloads 。我下载的版本是 simplejson-2.2.1.tar.gz
$ tar xvzf simplejson-2.2.1.tar.gz
$ cd simplejson-2.2.1
$ sudo python setup.py install
然后安装RabbitMQ Server。从此处下载源代码版本的RabbitMQ: http://www.rabbitmq.com/server.html。我下载的版本是 rabbitmq-server-2.6.1.tar.gz
$ tar xvzf rabbitmq-server-2.6.1.tar.gz
$ cd rabbitmq-server-2.6.1
$ make
# TARGET_DIR=/usr/local SBIN_DIR=/usr/local/sbin MAN_DIR=/usr/local/man make install
在sbin/目录下出现了三个命令:
rabbitmqctl rabbitmq-env rabbitmq-server
安装成功。
二、运行
找到sbin/目录,运行程序:
/usr/local/sbin/rabbitmq-server –detached
停止程序:
/usr/local/sbin/rabbitmqctl stop
配置
主要参考官方文档: http://www.rabbitmq.com/configure.html
一般情况下,RabbitMQ的默认配置就足够了。如果希望特殊设置的话,有两个途径:
一个是环境变量的配置文件 rabbitmq-env.conf ;
一个是配置信息的配置文件 rabbitmq.config;
注意,这两个文件默认是没有的,如果需要必须自己创建。
rabbitmq-env.conf
这个文件的位置是确定和不能改变的,位于:/etc/rabbitmq目录下(这个目录需要自己创建)。
文件的内容包括了RabbitMQ的一些环境变量,常用的有:
#RABBITMQ_NODE_PORT= //端口号
#HOSTNAME=
RABBITMQ_NODENAME=mq
RABBITMQ_CONFIG_FILE= //配置文件的路径
RABBITMQ_MNESIA_BASE=/rabbitmq/data //需要使用的MNESIA数据库的路径
RABBITMQ_LOG_BASE=/rabbitmq/log //log的路径
RABBITMQ_PLUGINS_DIR=/rabbitmq/plugins //插件的路径
具体的列表见: http://www.rabbitmq.com/configure.html#define-environment-variables
rabbitmq.config
这是一个标准的erlang配置文件。它必须符合erlang配置文件的标准。
它既有默认的目录,也可以在rabbitmq-env.conf文件中配置。
文件的内容详见: http://www.rabbitmq.com/configure.html#config-items
监控
主要参考官方文档: http://www.rabbitmq.com/management.html
RabbitMQ提供了一个web的监控页面系统,这个系统是以Plugin的方式进行调用的。
首先,在rabbitmq-env.conf中配置好plugins目录的位置:RABBITMQ_CONFIG_FILE
将监控页面所需要的plugin下载到plugins目录下,这些plugin包括:
mochiweb
webmachine
rabbitmq_mochiweb
amqp_client
rabbitmq_management_agent
rabbitmq_management
下载路径位于: http://www.rabbitmq.com/plugins.html#rabbitmq_management
重新启动RabbitMQ,输入http://server-name:55672/mgmt/ 就能够进入到监控页面。默认的用户名和密码是: guest 和 guest。如图: