码迷,mamicode.com
首页 > 其他好文 > 详细

zookeeper简单介绍

时间:2020-04-18 14:07:36      阅读:53      评论:0      收藏:0      [点我收藏+]

标签:cli   状态   服务器   创建   父节点   不成功   视图   领导   副本   

zookeeper特性:

  • 顺序一致性,客户端发起的事务请求会严格按照其发起顺序被应用到zookeeper中,用队列维护
  • 原子性,事务请求的应用情况在集群中所有机器上是一致的,要么全部成功,要么全部不成功
  • 单一视图,client无论连接到哪个server,数据视图都是一致的
  • 实时性,在一定时间范围内,client能读取到最新数据
  • 可靠性,服务成功应用了一个事务,该事务所引起的服务端状态变更会被一直保留下来

zookeeper节点角色:

  • leader(领导者),负责负责进行投票的发起和决议,更新系统状态
  • learner(学习者),包括跟随着follower和观察者observer,follower用于接受客户端请求并向客户端返回结果,参与投票
  • observer可以接受客户端连接,将写请求转发给leader,但observer不参加投票过程,只同步leader的状态,observer是为了扩展系统,提高读取速度
  • 客户端(client),请求发起方

watcher:

  • 事件监听器,Watcher可以监控目录子节点的数据变化以及子目录的变化,一旦这些状态发生变化,服务器就会通知所有设置在这个目录的节点上的Watcher,从而每个客户端很快知道他所关注的目录子节点的状态变化,然后做出反应。

数据节点类型:临时节点,生命周期和客户端绑定,客户端会话失效,所有临时节点会被移除。持久节点,一旦创建除非zookeeper主动移除,否则会一直存在。特殊属性:sequential,一旦这个节点被创建,zookeeper会自动在其节点名后追加一个整形数字,这个整型数字是由父节点维护的自增数字。

 

zookeeper是一个由多个server组成的集群,一个leader,多个follower,每个server保存一份数据副本,数据一致,分布式读写,更新请求和转发,由leader实施。

 

zookeeper横向拓展会提高哪些性能:

提高非事务读的性能,zookeeper中只有一个leader可以进行事务操作,那么横向拓展增加follower或observer,可以增加读取数据的性能

 

客户端怎么选择哪一个zookeeper集群节点取访问:

zookeeper会维护一个节点的列表,然后client随机访问或着轮询选择,当是事务请求的时候会通过server转发给leader节点,不是事务请求就会直接返回结果

 

zookeeper简单介绍

标签:cli   状态   服务器   创建   父节点   不成功   视图   领导   副本   

原文地址:https://www.cnblogs.com/codingLiu/p/12725385.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!