ZooKeeper原理详解及常用操作

ZooKeeper是一个开源的分布式应用程序协调系统。简称ZK,ZK是一个典型的分布式数据一致性解决方案,分布式应用程序可以基于它实现数据的发布/订阅、负载均衡、名称服务、分布式协调/通知、集群管理、Master选举、分布式锁盒分布式队列等等功能。它运行在JAVA环境之中,并具有JAVA和C的绑定。

ZooKeeper的设计目标

ZooKeeper允许分布式进程通过共享的分层命名空间相互协调,该命名空间的组织方式与标准文件系统类似。名称空间由数据寄存器(在ZooKeeper中,被称为Znodes)组成,这些寄存器类似于文件和目录,与设计用于存储的典型文件系统不同,ZooKeeper数据保存在内存中,这意味着ZooKeeper可以实现高吞吐量和低延迟数。
ZooKeeper实现非常重视高性能、高可用性、严格有序的访问,ZooKeeper的性能方面意味着它可以在大型分布式系统中使用,可靠性方面使其不会称为单点故障,严格的排序意味着可以在客户端实现复杂的同步原语。

ZooKeeper集群概念

集群角色

  • **Leader:**领导者,通过集群选举产生的主节点,负责集群的读与写工作
  • **Follower:**追随者,有资格参与集群选举,但未能被成功选举为Leader的备用选举节点,负责集群的读服务
  • **Observer:**观察者,没有资格参与集群选举,负责集群的读服务,同步Leader状态

注意:当Leader故障之后ZooKeeper集群会通过Follower选举新的Leader࿰

你可能感兴趣的:(Linux,ZooKeeper)