环境准备
- 三台 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
?
-
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