0


RabbitMQ 集群部署方案

RabbitMQ

  • 环境准备:三台服务器,系统是 CentOS7
  • IP地址分别是: - rabbitmq1:192.168.152.71- rabbitmq2:192.168.152.72- rabbitmq3:192.168.152.73

一、安装 RabbitMQ

记得配置yum源,避免不必要的错误

在三台服务器上分别安装 erlang 和 rabbitmq-server

  1. 安装 RabbitMQ 运行环境yum install-y erlang
  2. 安装软件 RabbitMQyum install-y rabbitmq-server

二、更改配置文件

一下配置在三台服务器上都要修改

  1. 更改 RabbitMQ 配置文件vim /etc/rabbitmq/rabbitmq.config 找到 %%{loopback_users, []}, 改为下面内容,大概在 53 行{loopback_users, []}
  2. 更改 hosts 配置主机名解析192.168.152.71 rabbitmq1192.168.152.72 rabbitmq2192.168.152.73 rabbitmq3 可以 ping 一下看是否配置成功

三、配置集群

  1. 改主机名,对照 hosts 配置的主机名解析,把对用服务器的主机名改为相应的解析 如:192.168.152.71hostnamectl set-hostname rabbitmq1192.168.152.72hostnamectl set-hostname rabbitmq2192.168.152.73hostnamectl set-hostname rabbitmq3然后全部都 exit 重新登录
  2. 启动三台服务器的 RabbitMQ 服务systemctl start rabbitmq-serversystemctl enable rabbitmq-server
  3. 统一三台服务器的 erlang.cookie,把 rabbitmq1 的 erlang.cookie 传输到其它两台scp /var/lib/rabbitmq/.erlang.cookie rabbitmq2:/var/lib/rabbitmq/.erlang.cookiescp /var/lib/rabbitmq/.erlang.cookie rabbitmq3:/var/lib/rabbitmq/.erlang.cookie
  4. 运行 cat /var/lib/rabbitmq/.erlang.cookie,查看三台服务器的值是否一致,一致后再重启 rabbitmq2 和 rabbitmq3 的 RabbitMQ 服务systemctl restart rabbitmq-server
  5. 查看 RabbitMQ 的节点状态rabbitmqctl cluster_status结果如下即为正确# rabbitmq1 的结果:Cluster status of node rabbit@rabbitmq1 ...[{nodes,[{disc,[rabbit@rabbitmq1]}]}, {running_nodes,[rabbit@rabbitmq1]}, {cluster_name,<<"rabbit@rabbitmq1">>}, {partitions,[]}]...done.# rabbitmq2 的结果:Cluster status of node rabbit@rabbitmq2 ...[{nodes,[{disc,[rabbit@rabbitmq2]}]}, {running_nodes,[rabbit@rabbitmq2]}, {cluster_name,<<"rabbit@rabbitmq2">>}, {partitions,[]}]...done.# rabbitmq3 的结果:Cluster status of node rabbit@rabbitmq3 ...[{nodes,[{disc,[rabbit@rabbitmq3]}]}, {running_nodes,[rabbit@rabbitmq3]}, {cluster_name,<<"rabbit@rabbitmq3">>}, {partitions,[]}]...done.
  6. 停止 rabbitmq2 和 rabbitmq3 主机的 RabbitMQ 应用rabbitmqctl stop_app
  7. 让 rabbitmq2 和 rabbitmq3 加入 rabbitmq1 的集群rabbitmqctl join_cluster rabbit@rabbitmq1
  8. 启动 rabbitmq2 和 rabbitmq3 主机的 RabbitMQ 应用,并再次查看 RabbitMQ 的节点状态rabbitmqctl start_app再三台服务器上执行 rabbitmqctl cluster_status 命令,结果就会变为下面这样# rabbitmq1 的结果:Cluster status of node rabbit@rabbitmq1 ...[{nodes,[{disc,[rabbit@rabbitmq1,rabbit@rabbitmq2,rabbit@rabbitmq3]}]}, {running_nodes,[rabbit@rabbitmq2,rabbit@rabbitmq3,rabbit@rabbitmq1]}, {cluster_name,<<"rabbit@rabbitmq1">>}, {partitions,[]}]...done.# rabbitmq2 的结果:Cluster status of node rabbit@rabbitmq2 ...[{nodes,[{disc,[rabbit@rabbitmq1,rabbit@rabbitmq2,rabbit@rabbitmq3]}]}, {running_nodes,[rabbit@rabbitmq1,rabbit@rabbitmq3,rabbit@rabbitmq2]}, {cluster_name,<<"rabbit@rabbitmq1">>}, {partitions,[]}]...done.# rabbitmq3 的结果:Cluster status of node rabbit@rabbitmq3 ...[{nodes,[{disc,[rabbit@rabbitmq1,rabbit@rabbitmq2,rabbit@rabbitmq3]}]}, {running_nodes,[rabbit@rabbitmq2,rabbit@rabbitmq1,rabbit@rabbitmq3]}, {cluster_name,<<"rabbit@rabbitmq1">>}, {partitions,[]}]...done.此时集群配置成功

四、测试

可以可以启用 RabbitMQ 可视化web管理插件,更直观的看到集群状态,也方便测试
三台服务器都要开启

rabbitmq-plugins enable rabbitmq_management
systemctl restart rabbitmq-server

通过IP地址加端口号访问,端口号为 15672
如:192.168.152.71:15672,默认的用户名:guest,密码:guest
在这里插入图片描述
可以再其中一台添加用户,看其它几台是否有变化,有则配置成功
在这里插入图片描述

标签: rabbitmq ruby 分布式

本文转载自: https://blog.csdn.net/thetender/article/details/141137756
版权归原作者 刘天洋d 所有, 如有侵权,请联系我们删除。

“RabbitMQ 集群部署方案”的评论:

还没有评论