zookeeper集群为什么是3个以上节点?
1个回答
2022-11-14 · 百度认证:IT168官方账号,优质数码领域创作者
关注
展开全部
因为在zookeeper的选举过程中,为了保证选举过程最后能选出leader就一定不能出现两台机器得票相同的僵局,所以一般就会要求zk集群的server数量一定要是奇数,也就是2n+1台。
并且,如果集群出现问题,其中存活的机器必须大于n+1台,否则leader就无法获得多数server的支持,系统就自动挂掉,所以一般是3个或者3个以上节点。
ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、名字服务、分布式同步、组服务等。目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。
ZooKeeper包含一个简单的原语集,提供Java和C的接口。ZooKeeper代码版本中,提供了分布式独享锁、选举、队列的接口,代码在zookeeper-3.4.3\src\recipes。其中分布锁和队列有Java和C两个版本,选举只有Java版本。