doyoubi/undermoon:Rust語言編寫的Redis叢集方案
Undermoon是一個基於Redis 叢集協議的自管理 Redis 叢集系統,支援:
- 水平可擴充套件性和高可用性
- 透過 HTTP API 進行叢集管理
- 主副本和副本的自動故障轉移
- 快速縮放
任何實現 redis 協議的儲存系統也可以以某種方式與 undermoon 一起工作,例如KeyDB。
關於 Redis 叢集協議的更深入解釋以及 Undermoon 是如何實現的,請參考Redis 叢集協議。
叢集原理:
- 後設資料儲存
後設資料儲存儲存整個undermoon叢集的所有後設資料,包括現有的 Redis 例項、代理和暴露的 Redis 叢集。現在它是一個名為Memory Broker. 當使用undermoon-operator時,這Memory Broker將更改為用於ConfigMap儲存資料。
- 協調員
Coordinator 將在代理和伺服器代理之間同步後設資料。它還主動檢查伺服器代理的活躍度並啟動故障轉移。
- 儲存叢集
儲存叢集由伺服器代理和 Redis 例項組成。它就像官方的 Redis 叢集一樣為應用程式服務。可以在它和應用程式之間新增一個 Redis Cluster Proxy,這樣應用程式就不需要將其 Redis 客戶端升級為智慧客戶端。
- 塊chunk
塊是每個暴露的 Redis 叢集的最小構建塊。每個塊由 4 個 Redis 例項和 2 個伺服器代理組成,均勻分佈在兩臺不同的物理機上。所以每個 Redis 叢集的節點數將是 4 的倍數,半主半副本。
chunk 的設計使得構建具有良好拓撲結構的叢集非常容易,以實現工作負載平衡。
安裝:如果你有 Kubernetes,使用undermoon-operator 是建立 Redis 叢集的最簡單方法。
相關文章
- 使用 Rust 語言編寫 Java JNI 實現RustJava
- spacejam/sled:使用Rust語言編寫的嵌入式資料庫Rust資料庫
- redis叢集 資料遷移方案Redis
- Redis系列:搭建Redis叢集(叢集模式)Redis模式
- Redis叢集實現方案選型分析Redis
- badamczewski/PowerUp:Rust/Go語言的反編譯工具RustGo編譯
- redis叢集Redis
- redis 叢集Redis
- redis叢集的搭建Redis
- 架構師必備:Redis的幾種叢集方案架構Redis
- 機器語言編寫helloworld
- Redis cluster 叢集Redis
- redis系列:叢集Redis
- Redis Cluster(叢集)Redis
- redis叢集原理Redis
- 搭建 Redis 叢集Redis
- redis叢集搭建Redis
- redis偽叢集配置Cluster叢集模式Redis模式
- Rust是如何用Rust編寫的? - RedditRust
- C語言 編寫線段樹C語言
- 9 SystemVerilog語言編寫SPI接收
- 【Redis】用python操作redis叢集RedisPython
- 認識Redis叢集——Redis ClusterRedis
- redis叢集之主從複製叢集的原理和部署Redis
- redis 5.0 叢集的安裝Redis
- Redis(5.0) 叢集搭建Redis
- 搭建Redis原生叢集Redis
- redis叢集指導Redis
- Redis--叢集搭建Redis
- docker-redis叢集DockerRedis
- redis叢集報錯Redis
- 搭建redis cluster叢集Redis
- redis 4.0.11 叢集搭建Redis
- redis 叢集構建Redis
- Docker搭建Redis叢集DockerRedis
- 易語言帶陣列json的編寫方法陣列JSON
- Jedis操作單節點redis,叢集及redisTemplate操作redis叢集(一)Redis
- 基於Dokcer搭建Redis叢集(主從叢集)Redis