zookeeper- 认识 zookeeper
zookeeper 能解决什么问题?
zooKeeper 是经典的分布式数据一致性解决方案,一般可以用于:
维护各种配置信息例如 hbase 中,客户端就是连接一个 zookeeper,获得集群的配置信息,再进一步操作。消息队列 kafka 中也使用了 zookeeper 来维护 broker 的信息。
实现分布式锁
集群信息管理
生成分布式唯一 ID 使用了 zookeeper 顺序节点的特性。
zookeeper 的特点
高性能
zooKeeper 是将全量数据存储在内存中,直接服务于客户端的所有非事务请求,特别适用于以读为主的场景
高可用
zooKeeper 一般以集群的方式对外提供服务,每台机器都会在内存中维护当前的服务器状态,每台机器之间都保持着相互通信。只要集群中超过一半的机器都能够正常工作,那么整个集群就能够正常对外服务。
严格顺序访问
对于每个更新请求,ZooKeeper 都会分配一个全局唯一的递增事务编号,这个编号反映了事务操作的先后顺序
zookeeper 的数据模型
zookeeper 的数据节点可以视为树状结构或者目录结构,各节点被称为 znode。比如/root/path1/children,其中 root 为 path1 的父节点,path1 为 root 的子节点。
zookeeper 中的节点分为临时节点和永久节点。节点的类型在创建时确定,不能改变。
临时节点:生命周期依赖于创建它们的会话。一旦会话结束,临时节点自动删除,或手动删除。每个临时对所有的客户端可见。ZooKeeper 的临时节点不能拥有子节点。
持久化节点:该节点的生命周期不依赖于会话,只有显示执行删除操作时才会被删除。
版权声明: 本文为 InfoQ 作者【zarmnosaj】的原创文章。
原文链接:【http://xie.infoq.cn/article/6340fcd6c6d45ccbbb4910a56】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论