面试突击3 zookeeper 总结

zookeeper 知识点
zookeeper 用来做什么
1、分布式事务锁:zookeeper分布式事务锁
2、核心元数据的存储:在一些分布式架构的项目中。一些核心数据需要集中式的管理和存储
3、分布式协调:在某些情况下有人。改变了zookeeper 中的数据。那么会反向通知监视这个数据的用户。让他瞬时能感受到数据的变化。
4、master主备切换 -> 实现HA 架构

为什么在分布式系统架构中使用zookeeper集群
1、时间比较久了,项目稳定bug 比较少
2、一般分布式项目都是具有高可用性的,如果只部署一台zookeeper的话要是服务宕机。后果不堪设想。所以如果想要项目有高可用性一般都采取集群化部署。

ZooKeeper为了满足分布式系统的需求要有哪些特点
1、集群化部署:这是满足高可用最基本条件。
2、顺序一致性:客户端请求过来的顺序必须一致性。不然会导致数据的错乱。
3、原子性:集群之间的站点的同步,数据要么成功,要么失败不存在。不存在部分失败和部分成功。
4、高可用性
5、实时性:数据同步的速度,基本上是瞬时的将写入的数据同步给集群中的站点。

为了满足分布式系统的需求,ZooKeeper的架构设计有哪些特点

1、必须满足集群化部署,满足高可用
2、存储在内存中的,这样可以承受高并发,因为内存数据读写速度比较快。
3、写入顺序的一致性,为每个写入的数据分配一个id 保证是有序性的。
3、数据的一致性,只有一台数据是可以写操作的,写完之后同步给其他节点、一定是强一致性,要么数据都有,要么就没有。

ZooKeeper集群的三种角色:Leader、Follower、Observer

zookeeper 中有三种角色
Leader :相当于是主机(领队) 可以写入数据,和读取数据。主机写入数据之后会瞬时感知到并同步到其余的follower。
Follower 只能读取数据, 不能写入。如果有写请求那么Follwer 会将写请求转发给Leader。再通过Leader重新同步数据。
当Leader宕机后 zookeeper 会从follwer中选举出新的Leader 来继续提供服务。

ObServer : 只能读取数据,并不能参加选举。

客户端与ZooKeeper之间的长连接和会话是什么
建立长连接后,与zookeeper之间 会有一个session 通过这个session 可以发送心跳来检测是否断开。
如果有人对zookeeper 数据做了修改,还可以反向通知客户端数据更变。如果session在设值的时间范围内重新连上了。那么依然能保持这个session, 否者这个session 就是超时了。

ZooKeeper的数据模型:znode和节点类型
znode 是zookeeper 中的数据结构相当于文件路径比如 use/local/tomcat 这样的结构。还需要查询下资料进一步学习

ZooKeeper最核心的一个机制:Watcher监听回调

zookeeper 与客户端建立好tcp长连接后,有客户端对zk中的某一个节点做修改后,zk会通过watcher 机制会反向的通知监控这个节点的客户端告知他们这个节点数据有改动。

zk到底通过什么协议在集群间进行数据一致性同步

zk中集群的数据一致性同步是通过ZAB协议进行执行的。zk中的角色就是通过ZAB来划分的,包括主机宕机之厚如何进行master的选举,主从数据的原子性

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值