Zookeeper架构学习笔记(更新中…)

Zookeeper的需求目标

    Zookeeper的目标是为分布式应用提供中心化的协同服务。分布式应用需要组成员管理,主节点选举,元数据(配置信息)管理,分布式锁等协同服务,Zookeeper提供了实现这些服务的工具,同时Zookeeper本身是分布式和高可靠的。

    Zookeeper的目标不包括大量的数据存储,因此在设计采用Zookeeper的分布式应用时,应将应用数据和用于协同控制的管理数据相分离,仅将少量的管理数据数据存储于Zookeeper中,将应用数据存储于等其它数据源中(如关系型数据库)。

Zookeeper的概念/术语

    ZNode:Zookeeper树状数据结构上的结点,可以存储少量数据。ZNode分为持久型、短暂型(Ephemeral)、顺序持久型和顺序短暂型。

    复制模式(Replicated Mode):Zookeeper可分为单机模式(Standalone Mode)和复制模式运行,复制模式时多台主机组成协作体,在这些主机间复制数据。

    协作体(Ensemble):用于复制Zookeeper数据的一组主机。协作体中有一个领导(Leader)和若干个追随者(Follower)。

   有效数(Quorum):在原子化广播(Atomic broadcast)和领导选举(Leader election)时,通过表决时所需的最小主机集合。Zookeeper默认使用的是多数有效数,即超过半数的主机集合。也支持权重有效数和分层级有效数,其中权重有效数指不同主机投票的权重不一样;采用分层级有效数时,将主机分为组,超过半数的组投票时通过,组内可采用权重投票。

Zookeeper的能力

Zookeeper设计思想

    Zookeeper不直接暴露Lock,Latch,Barrier等并发编程常用的原语,只提供了一组简单的API和保证,允许多个客户应用进程操作一个共享的树状数据结构。客户应用可以在此之上实现所需的并发控制服务。

参考资料

1. https://www.safaribooksonline.com/library/view/zookeeper/9781449361297

2. http://zookeeper.apache.org/doc/current

猜你喜欢

转载自blog.csdn.net/gongxsh00/article/details/80625558
今日推荐