rabbitmq集群在centos上的搭建指南
导读:RabbitMQ集群在CentOS上的搭建指南 1. 准备工作 服务器要求:至少2台CentOS服务器(如node1、node2),确保网络互通(可通过ping命令验证)。 基础环境:关闭SELinux(setenforce 0)、防火墙...
RabbitMQ集群在CentOS上的搭建指南
1. 准备工作
- 服务器要求:至少2台CentOS服务器(如
node1、node2),确保网络互通(可通过ping命令验证)。 - 基础环境:关闭SELinux(
setenforce 0)、防火墙(systemctl stop firewalld)或放行后续所需端口(避免干扰测试)。
2. 安装Erlang(RabbitMQ依赖)
RabbitMQ基于Erlang编写,需先安装兼容版本的Erlang。
- 添加Erlang官方仓库:
sudo tee /etc/yum.repos.d/erlang.repo < < EOF [erlang-solutions] name=Erlang Solutions repository for CentOS-\$releasever - \$basearch baseurl=https://packages.erlang-solutions.com/erlang/rpm/centos/\$releasever/\$basearch enabled=1 gpgcheck=1 gpgkey=https://packages.erlang-solutions.com/erlang/solutions.asc EOF - 安装Erlang:
sudo yum install -y erlang # 验证安装 erl -version # 应输出Erlang版本信息
3. 安装RabbitMQ
- 添加RabbitMQ官方仓库:
sudo tee /etc/yum.repos.d/rabbitmq.repo < < EOF [rabbitmq-server] name=RabbitMQ repository for CentOS-\$releasever - \$basearch baseurl=https://packagecloud.io/rabbitmq/rabbitmq-server/el/\$releasever/\$basearch repo_gpgcheck=1 gpgcheck=1 enabled=1 gpgkey=https://packagecloud.io/rabbitmq/rabbitmq-server/gpgkey EOF - 安装RabbitMQ:
sudo yum install -y rabbitmq-server # 启动服务并设置开机自启 sudo systemctl start rabbitmq-server sudo systemctl enable rabbitmq-server
4. 配置Erlang Cookie(集群通信关键)
Erlang Cookie是节点间身份认证的凭证,所有集群节点的Cookie文件必须完全一致(包括权限)。
- 获取主节点(如
node1)的Cookie:sudo cat /var/lib/rabbitmq/.erlang.cookie # 复制文件内容 - 复制到其他节点:
sudo scp /var/lib/rabbitmq/.erlang.cookie user@node2:/var/lib/rabbitmq/ - 设置Cookie权限(所有节点执行):
sudo chown rabbitmq:rabbitmq /var/lib/rabbitmq/.erlang.cookie sudo chmod 400 /var/lib/rabbitmq/.erlang.cookie # 仅所有者可读写
5. 配置主机名解析(可选但推荐)
为方便节点间通过主机名访问,需修改/etc/hosts文件(所有节点执行)。
- 编辑
/etc/hosts:sudo vi /etc/hosts - 添加节点映射(示例):
192.168.1.10 node1 192.168.1.11 node2
6. 启动集群
- 主节点(
node1):确保RabbitMQ服务正常运行(默认已启动)。 - 从节点(如
node2):# 停止RabbitMQ服务 sudo systemctl stop rabbitmq-server # 清除旧数据(首次加入集群需执行,后续无需) sudo rm -rf /var/lib/rabbitmq/mnesia/* # 启动服务 sudo systemctl start rabbitmq-server # 加入集群(将node2加入node1的集群) sudo rabbitmqctl stop_app sudo rabbitmqctl join_cluster rabbit@node1 # node1为主节点主机名 sudo rabbitmqctl start_app - 验证集群状态(任意节点执行):
输出应显示所有节点(如sudo rabbitmqctl cluster_statusnode1、node2)均已加入集群,无分区(partitions: [])。
7. 可选配置
7.1 启用管理插件(Web界面)
sudo rabbitmq-plugins enable rabbitmq_management
- 访问管理界面:
http://< 节点IP> :15672,默认用户名/密码为guest(仅限本地访问,生产环境需创建新用户)。
7.2 配置镜像队列(高可用)
镜像队列将队列数据复制到多个节点,提升容灾能力。
- 启用镜像队列插件:
sudo rabbitmq-plugins enable rabbitmq_mirroring_queue - 设置镜像策略(将所有队列镜像到所有节点):
sudo rabbitmqctl set_policy ha-all "^" '{ "ha-mode":"all"} '注:
ha-mode可选值:all(所有节点)、exactly(指定数量节点)、nodes(指定节点列表)。
7.3 配置防火墙
若防火墙开启,需放行RabbitMQ默认端口:
sudo firewall-cmd --permanent --zone=public --add-port=5672/tcp # AMQP协议端口
sudo firewall-cmd --permanent --zone=public --add-port=15672/tcp # 管理界面端口
sudo firewall-cmd --reload
8. 测试集群
- 通过管理界面:登录
http://< 节点IP> :15672,查看“Queues”或“Nodes”页面,确认队列分布在多个节点。 - 通过命令行:在
node1创建队列,然后在node2查看是否同步。
按照以上步骤操作,即可在CentOS上搭建高可用的RabbitMQ集群。生产环境中,建议增加节点数量(如3节点)、配置监控告警(如Prometheus+Granafa),并定期备份数据。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: rabbitmq集群在centos上的搭建指南
本文地址: https://pptw.com/jishu/729494.html
