一、环境

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查看镜像集群_rabbitmq查看镜像集群

 

 

下载rabbitmq的rpm包,找到对应的版本,选择Assets,centos 7系统选择e17的rpm包
下载地址:rabbitmq

或者在我的网盘下载:

链接:https://pan.baidu.com/s/11nDH3rYUjwq01zNNpygIpg
提取码:8he1

rabbitmq查看镜像集群_rpm包_02

 

 

rabbitmq查看镜像集群_命令行_03

二.安装部署

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   查看版本号

rabbitmq查看镜像集群_erlang_04

 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

rabbitmq查看镜像集群_命令行_05

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    确认集群状态

rabbitmq查看镜像集群_rabbitmq查看镜像集群_06

 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    确认集群状态

rabbitmq查看镜像集群_erlang_07

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查看镜像集群_命令行_08

 在rabbitmq-134,rabbitmq-135确认账户生成,证明数据同步成功,集群搭建完成

rabbitmqctl list_users

rabbitmq查看镜像集群_rabbitmq查看镜像集群_09

rabbitmq查看镜像集群_命令行_10

 登录网页查看集群状态

http://192.168.116.133:15672/

 

rabbitmq查看镜像集群_erlang_11

 

 

rabbitmq查看镜像集群_rpm包_12

 

注意:

默认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