当前位置: 首页 > article >正文

RabbitMQ 集群搭建步驟

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 插件來連接多個集群。


http://www.kler.cn/a/600276.html

相关文章:

  • React - LineChart组件编写(用于查看每日流水图表)
  • 实用工具--OfficeAI 助手 v0.3.20(长期免费,2025-03-18 本地支持WPSWord联动)
  • 使用nginx
  • CentOS 7上配置虚拟用户的FTP服务
  • WordPress自动代码高亮插件Code Prettify插件
  • 中间件漏洞之tomcat
  • 【QT】QTCreator测试程序
  • 重庆软航NTKO WebOffice控件在谷歌Chrome 133版提示扩展已停用解决方案!
  • 未来二十年的量子计算
  • JavaScript数组和对象
  • Spring Boot中接口数据字段为 Long 类型时,前端number精度丢失问题解决方案
  • Flask接口开发--GET接口
  • 不能解析域名怎么回事?
  • Linux paste命令
  • 鸿蒙开发之背景图片的使用
  • CentOS 7 64位安装Docker
  • vue3父子组件传值
  • JavaScript 事件循环
  • JVM中的运行时常量池详解
  • 【QA】Qt有哪些迭代器模式的应用?