Raft与Apache Zookeeper复制机制对比
1. ZooKeeper概述
ZooKeeper是一个开源的Apache项目,旨在为分布式系统提供可靠、易于理解的更新传播服务。它作为一个集中式服务,具备配置管理能力,负责分布式同步以及集群中的领导者选举。同时,它还存储与系统相关的命名和配置信息。
1.1 核心功能
- 分布式协调 :为分布式应用提供组服务和基本同步功能,助力其他云计算应用的运行。
- 读写处理 :
- 读请求 :由本地服务器处理,无需经过领导者,这一特性使得ZooKeeper在特定场景下能实现高性能,例如在读写比率为2:1到100:1的目标工作负载中,每秒可处理数万到数十万笔交易。
- 写请求 :由领导者处理,使用自定义的原子消息协议确保追随者(读副本)的数据一致性。当追随者收到写请求时,会将其转发给领导者,领导者计算写请求执行后的系统状态,并将消息转换为事务进行复制。
1.2 早期版本问题
早期版本为追求性能和优化,在实现协议与设计协议上存在差异,如在3.3.3版本之前未包含epoch变量acceptedEpoch和currentEpoch,这在生产环境中引发了一些问题。
1.3 在Kafka中的应用
Kafka利用ZooKeeper管理和协调集群任务,ZooKeeper充当单一控制代理。Ka
超级会员免费看
订阅专栏 解锁全文
144

被折叠的 条评论
为什么被折叠?



