rabbitmq基于centos7局域网集群搭建的方法

发布时间:2021-07-02 17:51:53 作者:chen
来源:亿速云 阅读:268
# RabbitMQ基于CentOS7局域网集群搭建的方法

## 一、环境准备

### 1.1 硬件要求
- 至少2台CentOS7服务器(本文以3节点为例)
- 每台服务器建议配置:
  - 2核CPU
  - 4GB内存
  - 50GB磁盘空间
- 所有节点需在同一局域网段(如192.168.1.0/24)

### 1.2 软件要求
- CentOS 7.6+(推荐最小化安装)
- Erlang 23.x+(RabbitMQ依赖环境)
- RabbitMQ 3.8.x+
- 关闭防火墙或开放相关端口:
  ```bash
  systemctl stop firewalld
  systemctl disable firewalld

二、基础环境配置

2.1 主机名与hosts配置

# 所有节点执行(以node1为例)
hostnamectl set-hostname node1

# 编辑/etc/hosts文件
cat >> /etc/hosts <<EOF
192.168.1.101 node1
192.168.1.102 node2
192.168.1.103 node3
EOF

2.2 时间同步

yum install -y ntpdate
ntpdate ntp.aliyun.com

三、Erlang安装

3.1 安装依赖

yum install -y epel-release
yum install -y socat logrotate

3.2 安装Erlang

# 添加Erlang解决方案仓库
curl -s https://packagecloud.io/install/repositories/rabbitmq/erlang/script.rpm.sh | sudo bash

# 安装Erlang
yum install -y erlang-23.3.4.11-1.el7.x86_64

四、RabbitMQ安装与配置

4.1 安装RabbitMQ

# 添加RabbitMQ仓库
curl -s https://packagecloud.io/install/repositories/rabbitmq/rabbitmq-server/script.rpm.sh | sudo bash

# 安装RabbitMQ
yum install -y rabbitmq-server-3.8.16-1.el7.noarch

4.2 启动服务

systemctl start rabbitmq-server
systemctl enable rabbitmq-server

4.3 启用管理插件

rabbitmq-plugins enable rabbitmq_management

五、集群配置

5.1 同步Erlang Cookie

# 在node1上执行
scp /var/lib/rabbitmq/.erlang.cookie root@node2:/var/lib/rabbitmq/
scp /var/lib/rabbitmq/.erlang.cookie root@node3:/var/lib/rabbitmq/

# 所有节点修改权限
chmod 600 /var/lib/rabbitmq/.erlang.cookie
chown rabbitmq:rabbitmq /var/lib/rabbitmq/.erlang.cookie

5.2 加入集群(在node2/node3执行)

systemctl stop rabbitmq-server
rabbitmq-server -detached
rabbitmqctl stop_app
rabbitmqctl join_cluster rabbit@node1
rabbitmqctl start_app

5.3 验证集群状态

# 任意节点执行
rabbitmqctl cluster_status

# 预期输出示例:
# Cluster status of node rabbit@node1
# [{nodes,[{disc,[rabbit@node1,rabbit@node2,rabbit@node3]}]},
#  {running_nodes,[rabbit@node3,rabbit@node2,rabbit@node1]}]

六、高可用配置

6.1 设置镜像队列策略

rabbitmqctl set_policy ha-all "^" '{"ha-mode":"all","ha-sync-mode":"automatic"}'

6.2 验证策略

rabbitmqctl list_policies

七、常见问题解决

7.1 节点无法加入集群

7.2 网络分区处理

# 查看分区状态
rabbitmqctl cluster_status

# 恢复分区
rabbitmqctl forget_cluster_node rabbit@故障节点

八、日常维护命令

命令 说明
rabbitmqctl add_user admin 密码 添加管理用户
rabbitmqctl set_user_tags admin administrator 设置管理员权限
rabbitmqctl list_queues 查看队列列表
rabbitmqctl list_exchanges 查看交换机列表

九、性能优化建议

  1. 磁盘I/O优化:

    echo 'vm.dirty_ratio = 20' >> /etc/sysctl.conf
    echo 'vm.dirty_background_ratio = 10' >> /etc/sysctl.conf
    sysctl -p
    
  2. 增加文件描述符限制:

    echo 'ulimit -n 65536' >> /etc/profile
    
  3. 建议使用SSD存储

十、总结

通过上述步骤,我们成功在CentOS7环境下搭建了RabbitMQ高可用集群。实际生产环境中建议: 1. 使用奇数个节点(3/5/7) 2. 定期备份元数据 3. 监控队列积压情况 4. 根据业务需求调整内存/磁盘告警阈值

”`

推荐阅读:
  1. CentOS7安装RabbitMQ3.7
  2. CentOS7系统环境中部署RabbitMQ的方法

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

rabbitmq centos7

上一篇:spring security中的权限控制是什么意思

下一篇:如何解决spring redisTemplate 使用中发现的问题

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》