搭建配置rabbitmq集群过程
由于公司很早就搭建了mq的环境,测试环境单节点单实例,最近频繁出问题,包括落盘文件过多导致磁盘爆满等,所以决定将中间件服务器做成集群模式,为保证迁移后顺畅使用,都是使用的跟之前一样的老版本。
安装erlang环境
tar -xvf otp_src_17.3.tar.gz
mkdir /usr/local/erlang
make && make install
ln -s /usr/local/erlang/bin/erl /usr/local/bin/erl
ERLANG_HOME=/usr/local/erlang
PATH=$ERLANG_HOME/bin:$PATH
export ERLANG_HOME
export PATH
安装编译环境
yum install perl
yum install ncurses-devel
yum -y install gcc gcc-c++
yum -y install xmlto
yum install nc zip unzip
安装rabbitmq
tar -zxvf rabbitmq-server-3.1.5.tar.gz
make
make install TARGET_DIR=/server/rabbitmq SBIN_DIR=/server/rabbitmq/sbin MAN_DIR=/server/rabbitmq/man
mkdir /etc/rabbitmq
./rabbitmq-plugins enable rabbitmq_management
组成集群
同步三台的.erlang.cookie,在/root下
分别启动三台 /server/rabbitmq/sbin/rabbitmq-server --detached
加入集群,hosts文件中的name要与主机名保持一致
rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl join_cluster rabbit@public1
rabbitmqctl start_app
另外一台同上,加入public1
查看状态
rabbitmqctl cluster_status
至此集群搭建完成,没有配置文件,一切按系统默认的方式运转,这里我需要修改落盘文件的存储位置到一个大一点的硬盘,新增配置文件
vim /etc/rabbitmq/rabbitmq-env.conf
内容:
RABBITMQ_MNESIA_BASE=/server/rabbitmq/data/mnesia
RABBITMQ_LOG_BASE=/server/rabbitmq/data/logs
将启动命令写到/etc/rc.local后发现开机不能自启,查看日志提示节点拒绝连接,分析启动命令后发现开机自启--/home后边没有指定cookie文件的位置,但手动执行会自动指定,不知道是什么原因,需探究一下Linux开机自启的原理,暂时忽略掉这个问题,修改rc.local为
su - root -c "source /etc/profile && /server/rabbitmq/sbin/rabbitmq-server --detached &"
至此彻底完成