rabbitmq集群安装实践
因为业务需求,需要使用到rabbitmq,使用的话肯定是集群模式了,从网上找了很多攻略,好像很多都不可行,最后参考官网的安装步骤,加上自己的时间顺利完成。 创建好集群让运维做HA就可以使用了。
一、安装rabbitmq命令(推荐yum安装)
#安装erlang
yun install erlang
安装epel
#su -c 'rpm -Uvh http://mirrors.yun-idc.com/epel/6/x86_64/epel-release-6-8.noarch.rpm'
get http://mirrors.yun-idc.com/epel/6/x86_64/epel-release-6-8.noarch.rpm
sudo rpm -ivh epel-release-6-8.noarch.rpm
#导入key:
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
#安装yum仓库
yum install yum-priorities
#rpm --import http://www.rabbitmq.com/rabbitmq-signing-key-public.asc
wget http://www.rabbitmq.com/rabbitmq-signing-key-public.asc
rpm --import rabbitmq-signing-key-public.asc
wget http://www.rabbitmq.com/releases/rabbitmq-server/v3.1.3/rabbitmq-server-3.1.3-1.noarch.rpm
yum install rabbitmq-server-3.1.3-1.noarch.rpm
#安装扩展应用(web管理工具)
rabbitmq-plugins enable rabbitmq_management
#启动mq服务
service rabbitmq-server start
二、集群操作命令(新机器加入到rabbitmq2为例)
#把cookie改为一致,路径 /var/lib/rabbitmq/.erlang.cookie
#可以采用copy或者手动修改的方式
#更改cookie文件权限和权限组
chmod 400 /var/lib/rabbitmq/.erlang.cookie
chown rabbitmq /var/lib/rabbitmq/.erlang.cookie
chgrp rabbitmq /var/lib/rabbitmq/.erlang.cookie
#停止操作机器节点
rabbitmqctl stop_app
#加入集群,如果需要持久化,不用加--ram,直接采用disk节点就好
rabbitmqctl join_cluster --ram rabbit@rabbitmq-2
#启动节点
rabbitmqctl start_app
成功界面如下:
三、注意事项,以A加入B为例,假设B是在运行的生产机器
1、操作集群一定要保证cookie的内容和权限一致,cookie路径 /var/lib/rabbitmq/.erlang.cookie,A和B必须要一致
2、要先停止A上所有节点 rabbitmqctl stop_app
3、加入集群命令 rabbitmqctl join_cluster --ram rabbit@B
4、启动节点 rabbitmqctl start_app
5、不需要在集群B上执行加入A的命令