rabbitmq集群部署-镜像模式
一、环境
RabbitMQ与Erlang的兼容关系详见:https://www.rabbitmq.com/which-erlang.html
rabbitmq集群最好是奇数节点,所以一般需要3台设备以上。
操作系统:CentOS 7
Erlang:erlang-23.3.4.1-1.el7.x86_64.rpm
RabbitMQ:rabbitmq-server-3.8.14-1.el7.noarch
三台主机:
192.168.116.133 rabbitmq-133
192.168.116.134 rabbitmq-134
192.168.116.135 rabbitmq-135
安装Erlang (erlang-23.3.4.1-1.el7.x86_64.rpm)
下载地址: https://github.com/rabbitmq/erlang-rpm/releases/
或者网盘下载:
链接:https://pan.baidu.com/s/1d0hymqFpZKrK29XS9jWSrA
提取码:p8xt
下载rabbitmq的rpm包,找到对应的版本,选择Assets,centos 7系统选择e17的rpm包
下载地址:rabbitmq
或者在我的网盘下载:
链接:https://pan.baidu.com/s/11nDH3rYUjwq01zNNpygIpg
提取码:8he1
二.安装部署
2.1 全部设备都初始化(三台设备上都要操作)
cd /etc/yum.repos.d/ yum install -y wget wget http://mirrors.aliyun.com/repo/Centos-7.repo wget http://mirrors.aliyun.com/repo/epel-7.repo mv CentOS-Base.repo CentOS-Base.repo.bak yum clean all yum makecache systemctl stop firewalld systemctl disable firewalld sed -i 's/SELINUX=enforcing$/SELINUX=disabled/g' /etc/selinux/config setenforce 0
2.2 全部设备下载、上传rabbitMQ和erlang的rpm包
2.3 设置hosts,然后再安装rpm包
1)首先,第一台设备设置hosts,然后安装rpm包
vi /etc/hosts 192.168.116.133 rabbitmq-133 192.168.116.134 rabbitmq-134 192.168.116.135 rabbitmq-135 hostnamectl set-hostname rabbitmq-133 yum install -y erlang-23.3.4.1-1.el7.x86_64.rpm yum install -y rabbitmq-server-3.8.14-1.el7.noarch.rpm erl 进入erlang的命令行,查看版本为23 q(). 退出命令行 rabbitmqctl version 查看版本号
2)在rabbitmq-134设置hosts、安装rpm包
vi /etc/hosts 192.168.116.133 rabbitmq-133 192.168.116.134 rabbitmq-134 192.168.116.135 rabbitmq-135 hostnamectl set-hostname rabbitmq-134 yum install -y erlang-23.3.4.1-1.el7.x86_64.rpm yum install -y rabbitmq-server-3.8.14-1.el7.noarch.rpm erl 进入erlang的命令行,查看版本为23 q(). 退出命令行 rabbitmqctl version 查看版本号
3)在rabbitmq-135设置hosts、安装rpm包
vi /etc/hosts 192.168.116.133 rabbitmq-133 192.168.116.134 rabbitmq-134 192.168.116.135 rabbitmq-135 hostnamectl set-hostname rabbitmq-135 yum install -y erlang-23.3.4.1-1.el7.x86_64.rpm yum install -y rabbitmq-server-3.8.14-1.el7.noarch.rpm erl 进入erlang的命令行,查看版本为23 q(). 退出命令行 rabbitmqctl version 查看版本号
1.4 设置集群为镜像模式,集群节点互为对方节点的主节点
1)在rabbitmq-133操作
systemctl enable rabbitmq-server systemctl start rabbitmq-server 安装网页插件,使得集群可以通过网页访问 rabbitmq-plugins enable rabbitmq_management 将主节点的cookie复制到其他2个节点 scp /var/lib/rabbitmq/.erlang.cookie root@192.168.116.134:/var/lib/rabbitmq/.erlang.cookie scp /var/lib/rabbitmq/.erlang.cookie root@192.168.116.135:/var/lib/rabbitmq/.erlang.cookie rabbitmqctl cluster_status 查看集群状态 注意集群名字:加入集群要用到这个 Cluster name: rabbit@rabbitmq-133
2)在rabbitmq-134操作
安装网页插件,使得集群可以通过网页访问 rabbitmq-plugins enable rabbitmq_management 让cookie信息重新加载 systemctl restart rabbitmq-server systemctl enable rabbitmq-server 加入集群 rabbitmqctl stop_app 停止服务 rabbitmqctl reset 重置数据,会把数据都删除 rabbitmqctl join_cluster rabbit@rabbitmq-133 加入集群 rabbitmqctl start_app 启动服务 rabbitmqctl set_policy ha-all "#" '{"ha-mode":"all"}' 设置集群为镜像模式 rabbitmqctl cluster_status 确认集群状态
3)在rabbitmq-135操作
安装网页插件,使得集群可以通过网页访问 rabbitmq-plugins enable rabbitmq_management 让cookie信息重新加载 systemctl restart rabbitmq-server systemctl enable rabbitmq-server 加入集群 rabbitmqctl stop_app 停止服务 rabbitmqctl reset 重置数据,会把数据都删除 rabbitmqctl join_cluster rabbit@rabbitmq-133 加入集群 rabbitmqctl start_app 启动服务 rabbitmqctl set_policy ha-all "#" '{"ha-mode":"all"}' 设置集群为镜像模式 rabbitmqctl cluster_status 确认集群状态
1.5 确认集群是否同步
在rabbitmq-133创建一个账户
rabbitmqctl add_user aa 123456 添加账户aa,密码为123456 rabbitmqctl set_user_tags aa administrator 将账户打上最高权限标签 rabbitmqctl set_permissions aa ".*" ".*" ".*" 设置为最高权限 rabbitmqctl list_users
在rabbitmq-134,rabbitmq-135确认账户生成,证明数据同步成功,集群搭建完成
rabbitmqctl list_users
登录网页查看集群状态
http://192.168.116.133:15672/
注意:
默认RabbitMQ的安装目录路径是/var/lib/rabbitmq、默认log路径是/var/log/rabbitmq/
可以自定义RabbitMQ配置
[root@sh-op-mq01 ~]# cd /etc/rabbitmq/
[root@sh-op-mq01 rabbitmq]# vim rabbitmq-env.conf
LOG_BASE=/data/log/rabbitmq //定义RabbitMQ的日志路径 ,然后重启服务
[root@sh-op-mq01 rabbitmq]# mkdir /data/log/rabbitmq
[root@sh-op-mq01 rabbitmq]# chown -R rabbitmq.rabbitmq /data/log/rabbitmq
rabbit-server当前状态:
[root@sh-op-mq01 rabbitmq]# rabbitmqctl status