很多学员都在反馈,说zk很难学,学的不是很明白,在这里,我继续带着大家详解一遍Zookeeper
首先zk是什么呢首先肯定是一个个分布式服务框架,是Apache Hadoop 的一个子项目,它主要是用来解决分布式应用 中经常遇到的一些数据管理问题,如:统一命名服务、集群管理、分布式应用配置项的管理 等。
第二:Zookeeper是一个数据库
第三:Zookeeper是一个拥有一件系统特点的数据库
第四:Zookeeper是一个解决了数据一致性问题的分布式数据库
第五:Zookeeper是一个具有发布和订阅功能的分布式数据库 (watch)
这样说同学们应该都是认同的吧,没有异议的吧
那么这个一致性又是什么呢
一致性分为强一致性,弱一致性, 最终一致性
有些同学不是很懂哈,那就接着看下面的内容
强制要求步骤2读取的时候,一定要读取的是2,不能读取到的是1,那么要求数据库之间同步异常迅速或者在步骤2上加锁以等待数据同步完成,那么这种叫强一致性;
允许步骤2读取的时候,可以读取的是1,那么这种叫弱一致性,其实就是不需要要一致;
允许步骤2读取的时候,可以先读到 1,过一段时间再读到2,那么这种叫最终一致性,就是可以等待一段时间才一致;
一个集群需要对外部提供强一致性,所以只要集群内部某一台服务器的数据发生了改变,那么就需要等待集群内其他服务器的数据同步完成后才能正常的对外提供服务。
保证了强一致性,通常需要损耗可用性
CAP也可分为三个,
Co