首页主机资讯rabbitmq集群在centos上的搭建指南

rabbitmq集群在centos上的搭建指南

时间2025-10-17 22:55:04发布访客分类主机资讯浏览549
导读:RabbitMQ集群在CentOS上的搭建指南 1. 准备工作 服务器要求:至少2台CentOS服务器(如node1、node2),确保网络互通(可通过ping命令验证)。 基础环境:关闭SELinux(setenforce 0)、防火墙...

RabbitMQ集群在CentOS上的搭建指南

1. 准备工作

  • 服务器要求:至少2台CentOS服务器(如node1node2),确保网络互通(可通过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_status
    
    输出应显示所有节点(如node1node2)均已加入集群,无分区(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
centos中rabbitmq的日志管理方法 centos环境下rabbitmq性能优化技巧

游客 回复需填写必要信息