一、Erlang安装
1,RabbitMQ是由erlang语言所写,所以需要搭建erlang环境,由于erlang的安装依赖ncurses-devel
sudo yum -y install ncurses-devel
2,下载erlang源码安装
wget http://www.erlang.org/download/otp_src_R16B01.tar.gz (或可从官网http://www.erlang.org/下载最新安装包)
tar -xzvf otp_src_R16B01.tar.gz
cd otp_src_R16B01
./configure
make && make install
二、RabbitMQ 安装&集群配置
1,下载RabbitMQ,解压即可运行
wget http://www.rabbitmq.com/releases/rabbitmq-server/v3.1.3/rabbitmq-server-generic-unix-3.1.3.tar.gz
tar -xzvf rabbitmq-server-generic-unix-3.1.3.tar.gz
运行命令: sbin/rabbitmq-server,看到如下截图说明单机运行成功
2,集群配置,RabbitMQ集群是通过设置cookie的方式集群,类似与hadoop的ssh密钥方式,以10.0.0.20&10.0.0.40作为集群demo
(1) 每台机器设置cookie配置集群,通过在sbin/rabbitmqctl与rabbitmq-server修改添加-setcookie cluster_cookie,下面只是sbin/rabbitmqctl的配置demo,rabbitmq-server与其类似,修改前&后的截图如下:
修改前:
修改后:
(2) 由于RabbitMQ每个实例的节点名字采用: rabbit + @ + 默认的机器名,如10.0.0.20 rabbitmq名字是:rabbit@ip-10-0-0-20
所以需要修改每台机器的hosts文件,使mq名字对应相应的机器ip
(3) 上面的都配置好后,需要通过以下命令加入集群
##加入集群
sudo sbin/rabbitmq-server -detached
sudo sbin/rabbitmqctl stop_app
sudo sbin/rabbitmqctl join_cluster --ram rabbit@is13084905-0612
sudo sbin/rabbitmqctl start_app
#检查集群状态
sudo sbin/rabbitmqctl cluster_status
##node节点数据存储类型转换 ram/disc
sudo sbin/rabbitmqctl stop_app #转换前node必须先停掉
sudo sbin/rabbitmqctl change_cluster_node_type ram
##从集群中删除
sudo sbin/rabbitmqctl stop_app
sudo sbin/rabbitmqctl reset
(4) 通过启动插件rabbitmq_management,访问方式http://xxxx:15672,默认用户名&密码都是guest,可以看到mq集群&队列的实时情况如下:
更多相关配置及优化,请参见:http://www.rabbitmq.com/clustering.html#setup