Zookeeper的原理及核心介绍

1.1 介绍什么是Zookeeper?

官方给出的解释:

Zookeeper是一个开源的分布式的,为分布式应用提供协调服务的Apache项目。

Zookeeper从设计模式角度来理解:是一个基于观察者模式设计的分布式服务管理框架,它负责存储和管理大家都关心的数据,然后接受观察者的注册,一旦这些数据的状态发生变化,Zookeeper就将负责通知已经在Zookeeper上注册的那些观察者做出相应的反应,从而实现集群中类似Master/Slave管理模式。

从我自己的角度而言,Zookeeper是一个分布式的协调服务框架,但是更像是一个分布式的小文件存储系统(存储文件在1M以内),并且提供监听服务,也是和HDFS一样一主(leader)多从(follower)的方式。

1.2 为什么要使用Zookeeper?

保证全局数据一致性 当处理事务的时候,如果多个节点同时处理事务的请求(增删改)的时候,会不会产生,脏读,更新丢失,不可重复读等情况。这个时候我们把所有的事务的请求发到leader上处理,在leader上有序的执行,之后再同步到follower上

1.3 Zookeeper的znode节点类型

在zk上存储数据上跟hdfs的不同之处就是znode可以当作一个文件目录也可以当作一个文件。

  • 永久节点 : 一直存在,必须要手动删除才能删除掉
  • 临时节点 : 生命周期依赖于会话技术,临时节点就消失了,临时节点下面不可以创建子节点
  • 序列化节点 :节点可以重名
  • 非序列化节点 : 节点是不可以重名的

1.4 Zookeeper的角色

  • leader : zk集群的核心,处理所有事务的请求,维护follower的健康状态(心跳机制)
  • follower : 负责处理所有的非事务的请求(主要就是查找)参与投票选举
  • observer : 负责处理所有的非事务请求,但是不参与投票选举

1.5 Zookeeper的投票选举机制

zk的集群一般都是奇数台
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_40745994/article/details/107648923