Rust 寫的 Undermoon Redis 集群-Chunk
感謝 doyoubi 提供這么好的項(xiàng)目,原文:https://github.com/doyoubi/undermoon/blob/master/docs/chunk.md
Chunk 是集群的基本構(gòu)建塊,可為創(chuàng)建的集群提供良好的拓?fù)浣Y(jié)構(gòu)以實(shí)現(xiàn)工作負(fù)載平衡。它由 2 個代理和 4 個 Redis 節(jié)點(diǎn)組成,均勻分布在兩臺機(jī)器上。
通常,前半部分有 1 個主節(jié)點(diǎn)和 1 個副本,它們的對等點(diǎn)位于后半部分。
后半部分失敗后,前半部分的所有 Redis 節(jié)點(diǎn)都將成為 master。
Chunk 分配
Undermoon 沒有復(fù)雜的調(diào)度策略和技術(shù),而是采用了簡單的 Redis 節(jié)點(diǎn)分配算法來實(shí)現(xiàn)工作負(fù)載均衡:
- 主節(jié)點(diǎn)應(yīng)該均勻分布在所有機(jī)器上。
- 故障轉(zhuǎn)移發(fā)生后,在每個集群中,故障主節(jié)點(diǎn)的流量洪水應(yīng)該均勻分布在所有機(jī)器上。
算法細(xì)節(jié)和算法終端證明記錄在chunk allocation(塊分配)中。
https://github.com/doyoubi/undermoon/blob/master/docs/chunk_allocation.txt
節(jié)點(diǎn)分配算法旨在分配節(jié)點(diǎn)塊以達(dá)到最大的平衡,也就是。盡量在整個集群中最廣泛地分布丟失主機(jī)上的從屬故障轉(zhuǎn)移。