1. 程式人生 > >CentOS linux 下rabbitmq基於單機的叢集配置

CentOS linux 下rabbitmq基於單機的叢集配置

rabbitMQ是一個在AMQP基礎上完整的,可複用的企業訊息系統,以下介紹rabbitmq的搭建及叢集配置資訊:

rabbit是基於erlang編寫的,所以需要先安裝erlang環境:

erlang需要相關環境的支援,如ODBC,JDK等,其中有一些是可以直接yum安裝的,這裡介紹一下JDK的安裝

wget http://download.oracle.com/otn-pub/java/jdk/7u25-b15/jdk-7u25-linux-x64.tar.gz
tar zxvf jdk-7u25-linux-x64.tar.gz -C /usr/local/
mv /usr/local/jdk1.7.0_25/ /usr/local/java
vim /etc/profile  新增JAVA環境變數

JAVA_HOME=/usr/java
JRE_HOME=/usr/java/jre
JAVA_BIN=/usr/java/bin
PATH=$JAVA_HOME/bin:$ANT_HOME/bin:$PATH
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

source /etc/profile 使變數生效

其它的依賴包直接yum即可

yum install -y git openssl openssl-devel unixODBC unixODBC-devel unixODBC-libs ncurses ncurses-devel

二:下載erlang包:

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

tar zxf otp_src_R13B04.tar.gz  &&  make && make install 即可

三:phthon , 及phtyon-simplejson 的安裝

yum install python python-simplejson -y

四:下載,安裝rabbitmq :

wget http://www.rabbitmq.com/releases/rabbitmq-server/v3.1.2/rabbitmq-server-3.1.2.tar.gz

make

make install TARGET_DIR=/usr/local/rabbitmq SBIN_DIR=/usr/local/sbin MAN_DIR=/usr/local/man

如果沒有錯誤的話,至此rabbitmq安裝完成,下面介紹rabbitmq叢集的配置:

RABBITMQ_NODE_PORT=9991 RABBITMQ_NODENAME=rab /usr/local/rabbitmq/sbin/rabbitmq-server -detached

RABBITMQ_NODE_PORT=9992 RABBITMQ_NODENAME=rab2 /usr/local/rabbitmq/sbin/rabbitmq-server -detached

我這裡啟用了rab 和 rab2兩個例項,埠號分別為9991和9992

1. 首先停止rab2

rabbitmqctl -n rab2 stop_app

2. 將rab2加入rab的叢集中

rabbitmqctl -n rab2 join_cluster rab@rab

3. 啟動rab2

RABBITMQ_NODE_PORT=9992 RABBITMQ_NODENAME=rab2 rabbitmq-server -detached

4. 檢視叢集狀態

rabbitmqctl cluster_status -n rab

顯示如下資訊,表示叢集配置正確

Cluster status of node rab@rab ...
  [{nodes,[{disc,[rab2@rab,rab@rab]}]},
  {running_nodes,[rab@rab]},
  {partitions,[]}]
  ...done.

######### 配置過程中可能碰到的問題  ##################

啟動 rabbitmq 服務時報錯:“{{case_clause,{error,{timeout_waiting_for_tables,[rabbit_user,rabbit_user_permission,rabbit_vhost,rabbit_config”

在保證配置沒問題的前提下,刪除 /var/lib/rabbitmq/mnesia/ rab 的相關配置即可