溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

RocketMQ升級到主從切換的方法教程

發布時間:2021-09-29 16:43:57 來源:億速云 閱讀:221 作者:iii 欄目:大數據
# RocketMQ升級到主從切換的方法教程

## 目錄
1. [主從架構核心概念](#一主從架構核心概念)
   - 1.1 [RocketMQ集群模式對比](#11-rocketmq集群模式對比)
   - 1.2 [主從切換設計原理](#12-主從切換設計原理)
2. [升級前準備工作](#二升級前準備工作)
   - 2.1 [環境兼容性檢查](#21-環境兼容性檢查)
   - 2.2 [數據備份方案](#22-數據備份方案)
3. [主從配置實戰](#三主從配置實戰)
   - 3.1 [Broker角色配置](#31-broker角色配置)
   - 3.2 [HA服務參數調優](#32-ha服務參數調優)
4. [故障切換演練](#四故障切換演練)
   - 4.1 [手動觸發主從切換](#41-手動觸發主從切換)
   - 4.2 [自動故障檢測機制](#42-自動故障檢測機制)
5. [生產環境驗證](#五生產環境驗證)
   - 5.1 [監控指標配置](#51-監控指標配置)
   - 5.2 [回滾應急預案](#52-回滾應急預案)
6. [常見問題解決方案](#六常見問題解決方案)

---

## 一、主從架構核心概念
### 1.1 RocketMQ集群模式對比
| 模式類型       | 節點角色          | 數據一致性   | 故障恢復時間 |
|----------------|-------------------|--------------|--------------|
| 單Master       | 獨立部署          | 無副本       | 不可恢復     |
| 多Master       | 全量節點平等      | 最終一致     | 分鐘級       |
| **主從模式**   | Master-Slave分層  | 強一致性     | 秒級切換     |

```java
// 典型主從配置示例
brokerClusterName = DefaultCluster
brokerName = broker-a
brokerId = 0  // 0表示Master,>0表示Slave
brokerRole = SYNC_MASTER  // 同步復制模式

1.2 主從切換設計原理

核心組件交互流程: 1. HAConnection建立長連接 2. Slave定期上報偏移量 3. Master心跳檢測超時(默認10秒) 4. Controller選舉新Master


二、升級前準備工作

2.1 環境兼容性檢查

  1. 版本要求

    • 必須≥4.5.0版本
    • NameServer集群≥3節點
  2. 磁盤檢測腳本

#!/bin/bash
df -h | grep /data/rocketmq/store
ls -lh /data/rocketmq/store/commitlog | wc -l

2.2 數據備份方案

推薦備份策略: 1. 停止Broker進程 2. 使用rsync增量備份

rsync -avzP /store_path root@backup:/rocketmq_backup/$(date +%Y%m%d)

三、主從配置實戰

3.1 Broker角色配置

master節點broker-a.properties

listenPort=10911
brokerIP1=192.168.1.101
enableControllerMode=true
controllerAddr=192.168.1.101:9876

slave節點broker-a-s1.properties

brokerId=1
brokerRole=SLAVE
syncMasterFlushOffset=true
haMasterAddress=192.168.1.101:10911

3.2 HA服務參數調優

參數名 默認值 生產建議值
haSendHeartbeatInterval 5000 3000
haHousekeepingInterval 20000 15000
haTransferBatchSize 32768 65536

四、故障切換演練

4.1 手動觸發主從切換

# 通過admin命令觸發
mqadmin updateBrokerConfig -n ns1:9876 -b broker-a-s1 \
  -k brokerRole -v SYNC_MASTER

4.2 自動故障檢測機制

檢測邏輯時序圖

sequenceDiagram
    Master->>Slave: 定時心跳(3s間隔)
    Slave->>Controller: 上報狀態
    alt 心跳丟失
        Controller->>Slave: 發起選舉
    end

五、生產環境驗證

5.1 監控指標配置

Prometheus關鍵指標

- job_name: 'rocketmq_exporter'
  metrics_path: '/metrics'
  static_configs:
    - targets: ['mq-exporter:5557']
  relabel_configs:
    - source_labels: [__address__]
      regex: '(.*):9876'
      target_label: instance

5.2 回滾應急預案

  1. 停止所有Slave節點
  2. 修改Master配置:
brokerRole=ASYNC_MASTER
enableControllerMode=false

六、常見問題解決方案

問題1:切換后消息堆積 - 原因:Slave同步延遲 - 解決方案:

  UPDATE broker_stats SET flush_offset = (SELECT MAX(offset) FROM commitlog)

問題2:腦裂現象 - 現象:雙Master同時寫入 - 處理步驟: 1. 斷開網絡分區 2. 人工介入仲裁 3. 重建ZK臨時節點


最佳實踐建議:在業務低峰期執行切換操作,提前進行至少3次完整演練。監控Grafana看板應包含”HA_Status”和”SyncDelay”關鍵指標。 “`

注:本文為簡化示例,實際完整版需補充以下內容: 1. 各配置參數的詳細解釋 2. 性能壓測數據對比 3. 不同版本間的差異說明 4. 完整的運維操作手冊 5. 企業級案例實踐分析

向AI問一下細節
推薦閱讀:
  1. RocketMQ
  2. MySQL之主從切換

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女