專案

一般

配置概況

動作

Develop #290

已結束

MOMO Redis 異地AS架構之切換方式

是由 andy chiang6 個月 前加入. 於 3 個月 前更新.

狀態:
Close
優先權:
LOW
被分派者:
開始日期:
2025-08-26
完成日期:
2025-12-16
完成百分比:

100%


概述

負責研究切換方式

  • 人工介入可以,但越少越好
  • 採 AS 為優先討論

檔案

是由 andy chiang6 個月 前更新

架構確認

  • 架構(典型做法)
    台北:3 個 Master(各管一部分 slot)+每個 Master 在台北本地放 1 個 Slave(本地 HA)。
    台中:每個 Master 再在台中放 1 個 遠端 Slave(AS/DR)。
    → 總數 = 3 Masters + 6 Slaves = 9 個節點(每個 Master 底下有 2 個 Slave:台北 1、台中 1)。

  • 寫入進到其中一個 Master:
    這個 Master 會把自己的資料(它負責的那些 slot)複寫給它名下的 2 個 Slave(台北那個 + 台中那個)。
    其它兩個 Master(及其 Slave)不會收到這筆資料(因為不是它們的 slot)。

  • 一致性特性:
    Redis 複寫是 非同步。兩個 Slave 都會「最終拿到」這筆寫入,但在 WAN 抖動、全量同步時可能有秒級落差(RPO>0)。
    想壓低風險:主節點可設 min-replicas-to-write 1、min-replicas-max-lag 2,確保至少有 1 個(通常台北本地)Slave 追得上才允許持續寫。


  • 確認 slot 歸屬指令:
    redis-cli -a pass.123 -c -h 192.168.10.201 -p 7011 CLUSTER SLOTS
    redis-cli -a pass.123 -c -h 192.168.10.201 -p 7015 CLUSTER NODES | awk '{printf "%-40s %-22s %-20s %-20s\n",$1,$2,$3,$4}'

  • 測試 205 master 打資料,201 slave 會不會有相同的 key
    先打一筆: v-1756262036

  • 驗證: 201 兩個 slave 都有資料
    (要先 READONLY 才不會被重導向到 Master)

是由 andy chiang6 個月 前更新 · 已被編輯

製作腳本: taichung_promote_master.sh (放置於205)
/home/ai/redis-cluster/cluster-3master-6slave/momo-test-script

製作腳本: restore_taipei_master_simplified.sh (放置於201)
/home/ai/redis-cluster/cluster-3master-6slave/momo-test-script

是由 andy chiang6 個月 前更新

  • 狀態Ongoing 變更為 Pending

是由 andy chiang3 個月 前更新

  • 完成日期 設定為 2025-12-16
  • 狀態Pending 變更為 Close
  • 完成百分比0 變更為 100

停滯

動作

匯出至 Atom PDF