# 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
# 所有節點執行(以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
yum install -y ntpdate
ntpdate ntp.aliyun.com
yum install -y epel-release
yum install -y socat logrotate
# 添加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倉庫
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
systemctl start rabbitmq-server
systemctl enable rabbitmq-server
rabbitmq-plugins enable rabbitmq_management
# 在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
systemctl stop rabbitmq-server
rabbitmq-server -detached
rabbitmqctl stop_app
rabbitmqctl join_cluster rabbit@node1
rabbitmqctl start_app
# 任意節點執行
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]}]
rabbitmqctl set_policy ha-all "^" '{"ha-mode":"all","ha-sync-mode":"automatic"}'
rabbitmqctl list_policies
journalctl -u rabbitmq-server -f# 查看分區狀態
rabbitmqctl cluster_status
# 恢復分區
rabbitmqctl forget_cluster_node rabbit@故障節點
| 命令 | 說明 |
|---|---|
rabbitmqctl add_user admin 密碼 |
添加管理用戶 |
rabbitmqctl set_user_tags admin administrator |
設置管理員權限 |
rabbitmqctl list_queues |
查看隊列列表 |
rabbitmqctl list_exchanges |
查看交換機列表 |
磁盤I/O優化:
echo 'vm.dirty_ratio = 20' >> /etc/sysctl.conf
echo 'vm.dirty_background_ratio = 10' >> /etc/sysctl.conf
sysctl -p
增加文件描述符限制:
echo 'ulimit -n 65536' >> /etc/profile
建議使用SSD存儲
通過上述步驟,我們成功在CentOS7環境下搭建了RabbitMQ高可用集群。實際生產環境中建議: 1. 使用奇數個節點(3/5/7) 2. 定期備份元數據 3. 監控隊列積壓情況 4. 根據業務需求調整內存/磁盤告警閾值
”`
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。