RabbitMQ安装教程

rabbitmq_logo_strap.png

   RabbitMQ是一个开源的AMQP实现,服务器端用Erlang语言编写,支持多种客户端,如:Python、Ruby、.NET、Java、JMS、C、PHP、ActionScript、XMPP、STOMP等,支持AJAX。用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面表现不俗。

AMQP,即Advanced Message Queuing Protocol,高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计。消息中间件主要用于组件之间的解耦,消息的发送者无需知道消息使用者的存在,反之亦然。
AMQP的主要特征是面向消息、队列、路由(包括点对点和发布/订阅)、可靠性、安全。

 关于rabbitmq的介绍参考:http://www.ostest.cn/archives/497http://lynnkong.iteye.com/blog/1699684

Rabbitmq 是用 erlang 语言写的,所以我们需要安装 Erlang,

一、安装Erlang
    1)安装erlang依赖的基本环境 
yum -y install make gcc gcc-c++  kernel-devel m4 ncurses-devel openssl openssl-devel xmlto

   2)下载安装Erlang

     下载从Erlang的官网 http://www.erlang.org/download.html 下载最新的erlang安装包

解压安装
$ tar xvzf otp_src_17.3.tar.gz
$ cd otp_src_17.3
$ ./configure
$ make
$ make install
二、安装python  和simplejson
1)安装python  
yum -y installpython  
2)下载安装simplejson,下载https://pypi.python.org/pypi/simplejson#downloads
解压、安装
$ tar xvzf simplejson-2.2.1.tar.gz
$ cd simplejson-2.2.1
$ python setup.py install
三、安装启动rabbitmq
tar -zxvf rabbitmq-server-3.4.1.tar.gz 
make
TARGET_DIR=/usr/local/rabbitmq/ SBIN_DIR=/usr/local/rabbitmq/sbin  MAN_DIR=/usr/local/rabbitmq/man DOC_INSTALL_DIR=/usr/local/rabbitmq/doc  make install 
2)安装web插件
mkdir /etc/rabbitmq/
/usr/local/rabbitmq/sbin/rabbitmq-plugins enable rabbitmq_management #启用
/usr/local/rabbitmq/sbin/rabbitmq-plugins disable rabbitmq_management #禁用
查看插件列表:/usr/local/rabbitmq/sbin/rabbitmq-plugins list
3)启动、关闭rabbitmq
启动 nohup /usr/local/rabbitmq/sbin/rabbitmq-server –detached &
关闭 /usr/local/rabbitmq/sbin/rabbitmqctl stop  &rabbitmqctl命令参考:http://www.rabbitmq.com/man/rabbitmqctl.1.man.html
查看启动端口:lsof -i:5672
启动出错原因:
(1)主机名不同导致,需修改主机名称( /etc/sysconfig/network)及解析(/etc/hosts)
(2)默认端口被占用5672,关闭被占用端口重新启动
4)查看服务状态
/usr/local/rabbitmq/sbin/rabbitmqctl status
5)登录web控制台
查看开启端口:
 netstat -atn |grep 15672
  netstat -atn |grep 55672
端口存在,就可以用默认账号guest,guest登陆http://localhost:15672或55672,如果此时你从端口15672或55672登陆不了,请关闭防火墙,再次登陆,
出于安全的考虑,guest这个默认的用户只能通过http://localhost:15672 来登录,不能使用IP地址登录,也就是不能远程访问,这对于服务器上没有安装桌面的情况是无法管理维护的。要解决这个问题增加用户。
请运行如下的命令,增加用户admin,密码admin即可。
/usr/local/rabbitmq/sbin/rabbitmqctl add_user admin admin
/usr/local/rabbitmq/sbin/rabbitmqctl list_users
/usr/local/rabbitmq/sbin/rabbitmqctl set_user_tags admin administrator
四、配置
主要参考官方文档: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