RabbitMQ 集群搭建步驟

发布于:2025-03-24 ⋅ 阅读:(33) ⋅ 点赞:(0)

RabbitMQ 集群搭建步驟

RabbitMQ 是一個流行的開源消息中間件,搭建集群可以提高其可用性和吞吐量。以下是搭建 RabbitMQ 集群的詳細步驟:

1. 準備工作

首先需要準備至少兩台服務器,並確保它們能夠相互通訊。每台服務器都需要安裝:

  • Erlang/OTP
  • RabbitMQ Server

2. 基本配置

在所有節點上:

  1. 確保各節點的 hosts 文件包含所有集群節點的信息,例如:
192.168.1.101 rabbitmq1
192.168.1.102 rabbitmq2
192.168.1.103 rabbitmq3
  1. 確保各節點使用相同的 Erlang Cookie:
# 在主節點查看 cookie
cat /var/lib/rabbitmq/.erlang.cookie

# 將主節點的 cookie 複製到其他節點
scp /var/lib/rabbitmq/.erlang.cookie user@rabbitmq2:/var/lib/rabbitmq/
scp /var/lib/rabbitmq/.erlang.cookie user@rabbitmq3:/var/lib/rabbitmq/
  1. 重啟所有節點上的 RabbitMQ 服務:
systemctl restart rabbitmq-server

3. 建立集群

  1. 在主節點(如 rabbitmq1)上啟動 RabbitMQ 服務:
rabbitmq-server -detached
  1. 在其他節點上停止 RabbitMQ 應用,然後加入集群:
# 在 rabbitmq2 上
rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl join_cluster rabbit@rabbitmq1
rabbitmqctl start_app

# 在 rabbitmq3 上
rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl join_cluster rabbit@rabbitmq1
rabbitmqctl start_app
  1. 檢查集群狀態:
rabbitmqctl cluster_status

4. 配置高可用性策略

設置鏡像隊列以實現高可用性:

# 設置所有隊列鏡像到所有節點
rabbitmqctl set_policy ha-all "^" '{"ha-mode":"all"}'

5. 啟用管理插件

在所有節點上啟用管理插件:

rabbitmq-plugins enable rabbitmq_management

訪問管理界面:http://rabbitmq1:15672(默認用戶名和密碼為 guest/guest)

6. 集群類型選擇

RabbitMQ 支持兩種集群模式:

  1. 普通集群

    • 元數據在所有節點間同步
    • 隊列內容只存在於創建該隊列的節點上
    • 如果沒有設置鏡像隊列,當節點下線時,其上的隊列不可用
  2. 鏡像集群

    • 需要在普通集群的基礎上配置鏡像策略
    • 隊列內容會在多個節點間同步
    • 提供高可用性,某個節點故障不會導致數據丟失

若需要更高級的集群功能,可以考慮使用 RabbitMQ 的 Federation 或 Shovel 插件來連接多個集群。


网站公告

今日签到

点亮在社区的每一天
去签到