它是一个分布式服务框架,是Apache Hadoop的一个子项目,它主要是用来解决分布式应用中经常遇到的一些数据管理问题,如:统一命名服务,集群管理、分布式应用配置项的管理等。
- ZK是一个数据库
- ZK是一个拥有文件系统特点的数据库
- ZK是一个解决了数据一致性问题的分布式数据库
- ZK是一个具有发布和订阅功能的分布式数据库(watch)
CAP
- Consistency:一致性(强一致性)
- Avalibality:可用性
- Partition Tolerance:分区容错性
- 一个集群需要对外部提供强一致性,所以只要集群内部某一台服务器的数据发生了改变,那么就需要等待集群内其他服务器的数据同步完成后才能正常的对外提供服务
- 保证了强一致性,通常需要损耗可用性
领导者选举发生的结点
- 集群启动
- Leader挂掉
- Follower挂掉后Leader发现已经没有过半的Follower跟随自己了-不能对外提供服务了(领导者选举)