Undermoon - 基於 Redis Cluster Protocol 的自管理 Redis 集群系統
專案地址:https://github.com/doyoubi/undermoon
Undermoon
是一個基於 Redis 叢集協議 的自管理 Redis
集群系統,支援:
-
水平可擴充套件性和高可用性
-
通過
HTTP API
進行叢集管理 -
master
和replica
的自動故障轉移 -
快速擴充套件
任何實現 redis
協議的儲存系統也可以以某種方式與 undermoon
一起工作,例如 KeyDB。
-
https://github.com/JohnSully/KeyDB
關於 Redis Cluster Protocol
的更深入解釋以及 Undermoon 是如何實現的,請參考 Redis Cluster Protocol。
-
https://github.com/doyoubi/undermoon/blob/master/docs/redis_cluster_protocol.md
架構
Metadata Storage(元資料儲存)
Metadata storage
儲存了整個 undermoon
叢集的所有元資料,包括現有的 Redis
例項、代理和暴露的 Redis
叢集。現在它是一個名為 Memory Broker
的記憶體儲存伺服器。當使用 undermoon-operator
時,這個 Memory Broker
會改為使用 ConfigMap
來儲存資料。
Coordinator(協調器)
Coordinator
將在代理和伺服器代理之間同步元資料。它還主動檢查伺服器代理的活躍度並啟動故障轉移。
Storage Cluster(儲存叢集)
Storage Cluster
由伺服器代理和 Redis
例項組成。它就像官方的 Redis Cluster
一樣為應用程式服務。可以在它和應用程式之間新增一個 Redis Cluster Proxy
,這樣應用程式就不需要將其 Redis
客戶端升級為智慧客戶端。
Chunk(塊)
Chunk
是每個暴露的 Redis
叢集的最小構建塊。每個塊由 4
個 Redis
例項和 2
個伺服器代理組成,均勻分佈在兩臺不同的物理機上。所以每個 Redis
叢集的節點數將是 4
的倍數,一半 master
一半 replica
。
chunk
的設計使得構建具有良好拓撲的叢集非常容易,以實現工作負載均衡。
更多
- 分散式 PostgreSQL,Citus(11.x) 效用函式
- Sentry 開發人員文件(中文手冊,二次開發指南)
- 分散式 PostgreSQL,Citus 11.x SQL 參考(中文手冊)
- 從 Notion 分片 Postgres 中吸取的教訓(Notion 工程團隊)
- 使用 Bitnami PostgreSQL Docker 映象快速設定流複製叢集
- pgpool-II 4.3 中文手冊 - 入門教程
- Pgpool-II 4.3 中文手冊-前言
- 基礎設施即程式碼(IAC),Zalando Postgres Operator UI 入門
- 基礎設施即程式碼(IAC),Zalando Postgres Operator 簡介
- Rb(redis blaster),一個為 redis 實現 non-replicated 分片的 python 庫
- Citus 分散式 PostgreSQL 叢集 - SQL Reference(手動查詢傳播)
- Citus 分散式 PostgreSQL 叢集 - SQL Reference(查詢分散式表 SQL)
- 在 Kubernetes 上快速測試 Citus 分散式 PostgreSQL 叢集(分散式表,共置,引用表,列儲存)
- 分散式 PostgreSQL 叢集(Citus),分散式表中的分佈列選擇最佳實踐
- 分散式 PostgreSQL 叢集(Citus)官方示例 - 時間序列資料
- 分散式 PostgreSQL 叢集(Citus)官方教程 - 遷移現有應用程式
- 分散式 PostgreSQL 叢集(Citus)官方示例 - 多租戶應用程式實戰
- Sentry Relay 二次開發除錯簡介
- 擴充套件我們的分析處理服務(Smartly.io):使用 Citus 對 PostgreSQL 資料庫進行分片
- 分散式 PostgreSQL - Citus 架構及概念