RabbitMQ 1.8.0 CentOS 安装和启动

RabbitMQ是什么?

 

官方的介绍:

The RabbitMQ server is an implementation of an AMQP broker. It is written on top of the widely-used Open Telecom Platform , and is platform neutral; the binary distributions listed below differ only in how they are packaged to conform to various operating systems' packaging conventions.

 

官方的安装指南:

http://www.rabbitmq.com/install.html

 

说明:

MQ全称为Message Queue, 消息队列(MQ)是端到端解耦的通信方法,数据结构采用先进先出(FIFO)的Queue队列模型。MQ的消费-生产者模型的一个典型的代表,一端往消息队列中不断的写入消息,而另一端则可以读取或者订阅队列中的 消息。最常见MQ是JMS的消息队列中间件,随J2EE而出名。RabbitMQ和JMS类似,但不同的是JMS是SUN JAVA消息中间件服务的一个标准和API定义,而RabbitMQ则是遵循了AMQP 协议的具体实现和产品。AMQP是跨语言跨平台的,本身是种标准。JMS一般只有Java语言支持。现有常见的开源MQ有Apache ActiveMQ,Apache QPID和OpenMQ,以及RabbitMQ。其它的有JMS的消息中间件一般由IBM、Oracle等巨头实现。

 

RabbitMQ的安装

 

在Windows下安装最容易,下载rabbitmq-server-windows-1.8.0.zip ,先安装Erlang的运行时,接着运行Sbin目录下的rabbitmq-service.bat即可将RabbitMQ注册为标准的Windows服务。如果不想作为服务而是作为普通的应用程序运行,可以运行rabbitmq-server.bat。停止可以 rabbitmqctl stop command。

 

在Debian和Ubuntu上,可安装rabbitmq-server_1.8.0-1_all.deb ,如果在RedHat(Fedora)上可安装rabbitmq-server-1.8.0-1.noarch.rpm ,如果是SUSE,则可安装 rabbitmq-server-1.8.0-1.suse.noarch.rpm

 

通用的Unix(Linux)安装包为 rabbitmq-server-generic-unix-1.8.0.tar.gz ,下载即可在Sbin里运行。

 

CentOS的安装

 

一般,安装RabbitMQ 需要4个步骤:

  • Python JSON
  • JDK
  • Erlang
  • RabbitMQ

 

1. 通过YUM安装

 

  RabbitMQ是由Erlang语言实现的,所以在安装RabbitMQ之前,应该安装Erlang:

 

yum install erlang。

 

  Erlang有部分代码依赖JDK。如果Erlang安装过程有发现有Java类似的错误,应该安装JDK的最新版,可参见Linux下Java环境的安装 。用YUM安装可自动安装所有RabbitMQ依赖的库文件。是最方便的安装方式。

yum install rabbitmq-server

  如果所在机器没有“rabbitmq-server”的可用安装包,建议先安装加速包:

 

yum -y install yum-fastestmirror

 

  接着就近添加yum的源服务器地址,其中技巧可参见CentOS yum源设定使用方法的整理

 

 

  然后,在https://admin.fedoraproject.org/updates/rabbitmq-server可查看现有的RabbitMQ的安装包。


=========================================

FEDORA-EPEL-2010-2351 rabbitmq-server-1.7.2-1.el5 Fedora EPEL 5
FEDORA-EPEL-2009-0841 rabbitmq-server-1.7.0-1.el5 Fedora EPEL 5
FEDORA-EPEL-2009-0312 rabbitmq-server-1.6.0-1.el5 Fedora EPEL 5

=========================================


  截止到2010年7月2日,只有最新1.7.2的RabbitMQ安装包。1.8.0是测试包。下列是yum的常见命令:

 

  •   在线升级: yum upgrade rabbitmq-server
  •   在线检查新版本: yum check-update rabbitmq-server 或者 yum update rabbitmq-server
  •   删除: yum remove rabbitmq-server

 

2. 通过通用Unix(Linux)安装包安装


2.1安装PythonJSON包

  

  先安装Python,yum install python 用wget下载 http://pypi.python.org/packages/source/s/simplejson/ 最新的安装包


wget "http://pypi.python.org/packages/source/s/simplejson/simplejson-2.1.1.tar.gz"

tar zxvf simplejson-2.1.1.tar.gz

cd simplejson-2.1.1

python setup.py build

python setup.py install

 

2.2安装JDK,参见 Linux下Java环境的安装

 

2.3安装Erlang

 

安装Erlang前要安装 JDK,以及yum install unixODBC和yum install unixODBC-devel,也就是unixODBC和unixODBC-devel。

然后wget从http://erlang.org/download.html下载最新的版本,安装编译。这步可能比较麻烦,如果有可能还是想法用YUM或者RPM安装最省事。

 

wget "http://erlang.org/download/otp_src_R13B04.tar.gz"

tar zxvf otp_src_R13B04.tar.gz

cd otp_src_R13B04

make && make install

 

2.4安装RabbitMQ

 

  用wget下载rabbitmq-server-1.8.0.tar.gz 。注意如果下载rabbitmq-server-generic-unix-1.8.0.tar.gz ,则无需编译即可运行。

 

wget "http://www.rabbitmq.com/releases/rabbitmq-server/v1.8.0/rabbitmq-server-1.8.0.tar.gz"

tar zxvf rabbitmq-server-generic-unix-1.8.0.tar.gz

cd rabbitmq_server-1.8.0

make && make install

 

3. 启动RabbitMQ

 

  编译成功后:在RabbitMQ文件里会有一个sbin文件夹。这个文件夹包括:

  • rabbitmq-server 启动RabbitMQ
  • rabbitmqctl 控制RabbitMQ,可启动、停止、重启、配置用户、权限、查看队列信息等
  • rabbitmq-multi 后台启动RabbitMQ程序
  • rabbitmq-deactivate-plugins
  • rabbitmq-activate-plugins 
  • rabbitmq-env

  通过这些程序就可以正式启动RabbitMQ。想要全局调用这些命令,可以CP拷贝这些命令到 /usr/sbin 目录里。如果想在操作系统重启后,仍然能正常启动RabbitMQ,则需要在

 

/etc/rc.d/init.d/

 

  添加一个自启动的脚本如rabbitmq。设置该脚本可执行: chmod +x rabbitmq。该脚本如下:

 

#!/bin/sh
#
# rabbitmq-server RabbitMQ broker
#
# chkconfig: - 80 05
# description: Enable AMQP service provided by RabbitMQ
#

### BEGIN INIT INFO
# Provides:          rabbitmq-server
# Required-Start:    $remote_fs $network
# Required-Stop:     $remote_fs $network
# Default-Start:
# Default-Stop:
# Description:       RabbitMQ broker
# Short-Description: Enable AMQP service provided by RabbitMQ broker
### END INIT INFO

PATH=/sbin:/usr/sbin:/bin:/usr/bin

########### 修改路径   ###########
DAEMON=/usr/sbin/rabbitmq-multi  
NAME=rabbitmq-server
DESC=rabbitmq-server
USER=rabbitmq
NODE_COUNT=1
ROTATE_SUFFIX=
INIT_LOG_DIR=/var/log/rabbitmq

DEFAULTS_FILE=/etc/sysconfig/rabbitmq
LOCK_FILE=/var/lock/subsys/$NAME

test -x $DAEMON || exit 0

# Include rabbitmq defaults if available
if [ -f "$DEFAULTS_FILE" ] ; then
    . $DEFAULTS_FILE
fi

RETVAL=0
set -e

start_rabbitmq () {
    set +e
    $DAEMON start_all ${NODE_COUNT} > ${INIT_LOG_DIR}/startup_log 2> ${INIT_LOG_DIR}/startup_err
    case "$?" in
      0)
        echo SUCCESS
        [ -n "$LOCK_FILE" ] && touch $LOCK_FILE
        RETVAL=0
        ;;
      1)
        echo TIMEOUT - check ${INIT_LOG_DIR}/startup_/{log,err/}
        RETVAL=1
        ;;
      *)
        echo FAILED - check ${INIT_LOG_DIR}/startup_log, _err
        RETVAL=1
        ;;
    esac
    set -e
}

stop_rabbitmq () {
    set +e
    status_rabbitmq quiet
    if [ $RETVAL = 0 ] ; then
        $DAEMON stop_all > ${INIT_LOG_DIR}/shutdown_log 2> ${INIT_LOG_DIR}/shutdown_err
        RETVAL=$?
        if [ $RETVAL = 0 ] ; then
            # Try to stop epmd if run by the rabbitmq user
            pkill -u rabbitmq epmd || :
            [ -n "$LOCK_FILE" ] && rm -rf $LOCK_FILE
        else
            echo FAILED - check ${INIT_LOG_DIR}/shutdown_log, _err
        fi
    else
        echo No nodes running
        RETVAL=0
    fi
    set -e
}

status_rabbitmq() {
    set +e
    if [ "$1" != "quiet" ] ; then
        $DAEMON status 2>&1
    else
        $DAEMON status > /dev/null 2>&1
    fi
    if [ $? != 0 ] ; then
        RETVAL=1
    fi
    set -e
}

rotate_logs_rabbitmq() {
    set +e
    $DAEMON rotate_logs ${ROTATE_SUFFIX}
    if [ $? != 0 ] ; then
        RETVAL=1
    fi
    set -e
}

restart_rabbitmq() {
    stop_rabbitmq       
    start_rabbitmq
}

case "$1" in
    start)
        echo -n "Starting $DESC: "
        start_rabbitmq
        echo "$NAME."
        ;;
    stop)
        echo -n "Stopping $DESC: "
        stop_rabbitmq
        echo "$NAME."
        ;;
    status)
        status_rabbitmq
        ;;
    rotate-logs)
        echo -n "Rotating log files for $DESC: "
        rotate_logs_rabbitmq
        ;;
    force-reload|reload|restart|condrestart|try-restart)
        echo -n "Restarting $DESC: "
        restart_rabbitmq
        echo "$NAME."
        ;;
    *)
        echo "Usage: $0 {start|stop|status|rotate-logs|restart|condrestart|try-restart|reload|force-reload}" >&2
        RETVAL=1
        ;;
esac

exit $RETVAL

  然后用 rabbitmq start 就可启动了。用 rabbitmq stop 可停止。

 

  自此,安装启动完毕!

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值