环境准备
- 三台 centos 7.5 服务器
- rabbitmq 安装所需依赖Erlang (使用 rpm 安装)
- rabbitmq 安装包(使用rpm安装)
服务器IP
服务器 | IP | hostname |
rabbit-50 | 192.168.86.50 | node0 |
rabbit-51 | 192.168.86.51 | node1 |
rabbit-52 | 192.168.86.52 | node2 |
单机模式部署
- 根据服务器的内核下载对应的 Erlang 版本、rabbitmq 的版本,并且将两个文件上传到服务器 /opt 目录下
uname -r
- 安装依赖 socat、logrorate
yum install socat logrotate -y
- 安装依赖 Erlang
cd /opt #进入上传目录 rpm -ivh erlang-23.3.4.4-1.el7.x86_64.rpm
- 安装 rabbitmq
rpm -ivh rabbitmq-server-3.8.19-1.el7.noarch.rpm
- 设置开机自启动
chkconfig rabbitmq-server on
- 安装rabbitmq_management 插件用于前台管理
rabbitmq-plugins enable rabbitmq_management
- 创建一个超级管理员用户,并且赋权
rabbitmqctl add_user root s3crEt rabbitmqctl set_user_tags root administrator rabbitmqctl set_permissions --vhost '/' root '.*' '.*' '.*'
- 启动、停止、查看状态
/sbin/service rabbitmq-server status #查看状态 /sbin/service rabbitmq-server start #启动 /sbin/service rabbitmq-server stop #停止
- 前台浏览器访问 http://localhost:15672
集群模式部署
- 修改三台机器的主机名称: vi /etc/hostname
- 配置各个节点的hosts文件,让各个节点能够互相识别对方: vi /etc/host
192.168.86.50 node0 192.168.86.51 node1 192.168.86.52 node2
- 重启服务器
- 按照单机模式部署的步骤,每台机器从第1步执行到第6步结束
- 确保每个服务器的 erlang.cookie 文件使用的是同一个值,在node0执行以下命令:
scp /var/lib/rabbitmq/.erlang.cookie root@node1:/var/lib/rabbitmq/.erlang.cookie scp /var/lib/rabbitmq/.erlang.cookie root@node2:/var/lib/rabbitmq/.erlang.cookie
- 启动 rabbitmq 服务,在三台机器上执行以下命令
systemctl start rabbitmq-server
- 在 node1 执行以下命令
rabbitmqctl join_cluster rabbit@node0 rabbitmqctl start_app
- 在node2执行以下命令
rabbitmqctl join_cluster rabbit@node1 rabbitmqctl start_app
- 查看集群状态
rabbitmqctl cluster_status
- 创建用户及赋权
rabbitmqctl add_user admin 123 #创建用户 rabbitmqctl set_user_tags admin administrator #设置用户角色 rabbitmqctl set_permissions -p '/' admin '.*' '.*' '.*' #设置用户权限
- 随便打开一个节点的管理界面查看集群状态:
常见问题
- 如何解除集群节点?
#node1 上执行 rabbitmqctl stop_app rabbitmqctl reset rabbitmqctl start_app rabbitmqctl cluster_status #node0 上执行 rabbitmqctl forget_cluster_node rabbit@node1
-- 整理于网络,加上自己的理解,大家一起学习,进步就好