为什么不使用ZooKeeper

2025-05-29 19:50:27
推荐回答(1个)
回答1:

ZooKeeper作为发现服务的问题

ZooKeeper(注:ZooKeeper是著名Hadoop的一个子项目,旨在解决大规模分
布式应用场景下,服务协调同步(Coordinate
Service)的问题;它可以为同在一个分布式系统中的其他服务提供:统一命名服务、配置管理、分布式锁服务、集群管理等功能)是个伟大的开源项目,它
很成熟,有相当大的社区来支持它的发展,而且在生产环境得到了广泛的使用;但是用它来做Service发现服务解决方案则是个错误。

在分布式系统领域有个著名的 CAP定理(C-
数据一致性;A-服务可用性;P-服务对网络分区故障的容错性,这三个特性在任何分布式系统中不能同时满足,最多同时满足两个);ZooKeeper是个

CP的,即任何时刻对ZooKeeper的访问请求能得到一致的数据结果,同时系统对网络分割具备容错性;但是它不能保证每次服务请求的可用性(注:也就

是在极端环境下,ZooKeeper可能会丢弃一些请求,消费者程序需要重新请求才能获得结果)。但是别忘了,ZooKeeper是分布式协调服务,它的