感谢 doyoubi 提供这么好的项目,原文:https://github.com/doyoubi/undermoon/blob/master/docs/chunk.md
Chunk 是集群的基本构建块,可为创建的集群提供良好的拓扑结构以实现工作负载平衡。它由 2 个代理和 4 个 Redis 节点组成,均匀分布在两台机器上。
通常,前半部分有 1 个主节点和 1 个副本,它们的对等点位于后半部分。
后半部分失败后,前半部分的所有 Redis 节点都将成为 master。
Chunk 分配
Undermoon 没有复杂的调度策略和技术,而是采用了简单的 Redis 节点分配算法来实现工作负载均衡:
- 主节点应该均匀分布在所有机器上。
- 故障转移发生后,在每个集群中,故障主节点的流量洪水应该均匀分布在所有机器上。
算法细节和算法终端证明记录在chunk allocation(块分配)中。
https://github.com/doyoubi/undermoon/blob/master/docs/chunk_allocation.txt
节点分配算法旨在分配节点块以达到最大的平衡,也就是。尽量在整个集群中最广泛地分布丢失主机上的从属故障转移。