✅Zookeeper的缺点有哪些?

✅Zookeeper的缺点有哪些?

典型回答

ZooKeeper 是一个分布式协调组件,在分布式系统中被广泛应用,但是其实他还是存在很多缺点的。

最重要的就是性能问题,ZooKeeper 设计是为了高一致性,其 ZAB 协议需要同步写操作到大多数节点,导致写操作的性能较低。在高并发写入场景下,ZooKeeper 的性能会成为瓶颈。

但是知道CAP的大家都知道,一致性和可用性之间,只能选择一个,ZK选了一致性,那就势必会牺牲一定的可用性,而性能就是可用性中非常关键的一个指标。

✅Zookeeper是CP的还是AP的?

第二个就是ZooKeeper 的所有写操作必须经过 Leader 节点处理,所有写请求都需要通过 Leader 同步到其他节点。那么这个Leader就是整个集群的瓶颈,如果 Leader 负载过高,就可能会导致性能下降。如果Leader挂了,就会无法工作(直到新的leader选举成功)

第三,ZooKeeper 将数据存储在内存中,以提供快速访问性能。这意味着它不适合存储大量数据,通常只适合存储小型的元数据和配置信息。如果数据量过大,会导致内存不足或性能下降。

还有就是,ZooKeeper 假设节点之间的网络和节点状态变化是少见的。如果网络分区或节点频繁故障,会频繁触发 Leader 选举,影响可用性。

相较于一些现代分布式协调工具(如 etcd、Consul),ZooKeeper 的易用性和工具生态略显不足,运维和管理复杂度较高。