1、zk是什么?
它是一个分布式服务框架,是Apache Hadoop 的一个子项目,它主要是用来解决分布式应用中经常遇到的一些数据管理问题,如:统一命名服务、集群管理、分布式应用配置项的管理等。它是通过ZAB协议实现的。
(1) zk是一个数据库
其可以存数据(我们可以将其理解为一个数据库)
ls /(查看根节点)
create /luban 123(创建数据节点,内容为123)
get /luban(查询)
注意:
查看子节点时要写明路径
zk中有临时节点,也有持久化节点
(2)zk是一个拥有文件系统特点的数据库
文件系统的目录就是为了更方便的找到文件,或者说定义某个节点的路径;统一命名。
(3)zk是一个解决了数据一致性问题的分布式数据库
<1>一致性
强一致性
强制要求步骤2读取的时候,一定要读取的是2,不能读取到的是1,那么要求数据库之间同步非常迅速或者在步骤2上加锁(分布式锁)以等待数据同步。
弱一致性
允许步骤2读取的时候,可以读取的是1,其实就是不需要一致
最终一致性
允许步骤2读取的时候,可以先读到1,过一段时间再读到2,那么这种叫最终一致性,就是可以等待一段时间才一致。 最终一致性是我们现在用的最多的,zk保证的就是最终一致性。
注意:
1、如果一个集群需要对