zookeeper简史
zookeeper最开始是hadoop的子项目,后来孵化为apache的顶级项目。最初是由yahoo的2位研究员(research scientist)开发,这2位研究员是Benjamin Reed和Flavio Junqueira。另外,他们俩还一起写了一本书ZooKeeper: Distributed Process Coordination,比apache zookeeper官网的文档要更详细,推荐阅读。
zookeeper术语
- zookeeper ensemble:当zookeeper工作在仲裁模式(quorum)时,一组服务器组成的集合叫做
zookeeper ensemble
- session: 客户端(client)和zookeeper服务器之间的连接,客户端对zookeeper服务器的任何操作都和session关联(associate)。客户端会随机和ensemble中的一台服务器连接,如果连接成功,不会再连接其它服务器,否则会继续连接其它服务器,最终只会和一台服务器建立连接,建立sesssion。但是之后session是可以在服务器之间转移的,比如当前服务器挂掉了,客户端和另一台服务器建立了连接,使用的还可以是之前的session。转移session是通过客户端库(client library)完成的。session提供顺序保证(order guarantee),同一个session中的请求执行顺序是FIFO(first in, first out)。只有zookeeper server才能申明一个session过期(session expire),客户端不能判定session过期,客户端可以在接收到zookeeper server的客户端过期申明后关闭session(close session)
- quorum: quorum的中文翻译有
法定集合
或则法定人数
。quorum指的是保证zookeeper正常工作的最小的服务器数量,也是对提案(propasal,实际就是创建一个znode/删除znode,对znode数据修改或子节点操作等动作)参与投票(vote)的最小的服务器数量。比如总共有5台服务器,那么quorum可能是3. - zookeeper handle: zookeeper操作,比如创建节点、删除节点、设置节点数据、删除节点数据等动作
网友评论