当前位置: 首页 > article >正文

01,大数据总结,zookeeper

1 ,zookeeper :概述

1.1,zookeeper:作用

1 ,大数据领域 :存储配置数据
 
  例如:hadoop 的 ha 配置信息,hbase 的配置信息,都存储在 zookeeper
 
2 ,应用领域 :分布式锁
 
  分布式锁,虽然 zk 也能做,但是更加推荐使用 redis ,更合适。

1.2,zookeeper:开发 - java

java 语言开发的。

1.3,qps :10w

1 ,3 台主机的 zk 集群,qps 可以达到 :10w 左右。

2 ,zookeeper :架构

2.1,架构图 :

在这里插入图片描述

2.2,leader :主节点

1 ,角色 :
 
  集群的主节点
 
2 ,作用 :
 
  1 ,处理客户端请求 :读,写。
 
  2 ,服务器内部 :调度者,将写请求,发送给每个系节点。
 
  3 ,事务:保证事务处理的有序性。

2.2,follower :从节点

1 ,角色 :
 
  集群的从节点
 
2 ,作用 :
 
  1 ,处理客户端请求 :读。
 
  2 ,写请求 :转发给 leader 处理。
 
  3 ,选举:leader 挂了,follower 要参与 leader 选举。
 
  4 ,存储:leader 存储数据的时候,需要每个从节点,根据leader提议,在本地存储数据。

2.3,observer :观察者节点

1 ,角色 :
 
  集群的从节点
 
2 ,作用 :
 
  1 ,处理客户端请求 :读。
 
  2 ,写请求 :转发给 leader 处理。
 
  3 ,选举:不参与
 
  4 ,同步:从主节点同步数据。

3 ,zookeeper :数据处理

3.1,最终一致性 :

意义 :数据同步不及时,但是最终,数据是一致的。

3.2,获取 :最新数据

1 ,由于 :
 
  zookeeper 的数据更新,不及时。
 
2 ,client 想获取最新数据,需要在读取数据前,先调用这个接口 :
 
  sync()
 
3 ,sync() 作用 :
 
  1 ,目的 :client 连接的当前从节点,向 leader 发请求,需要同步最新数据。
 
  2 ,leader 响应 :如果没有心数据,直接返回响应【Leader.SYNC】
 
    如果有新数据,需要处理完最新数据,才返回响应【Leader.SYNC】,从节点收到响应后,将最新数据,返回给 client 。

3.3,数据操作 :写入流程,leader

1 ,leader 接收请求
 
2 ,leader 发送 proposal 给 follower
 
3 ,follower 收到请求记录 txlog、snapshot、
 
4 ,follower 发送 ack 给 leader
 
5 ,commit :leader 收到 ack 后进行 commit,并且通知所有的【follower,observer】
 
6 ,leader 返回成功给客户端

3.4,数据操作 :写入流程,follower

1 ,follower 接受请求,解析请求。
 
2 ,转发 :follower 将写请求转发给 leader
 
3 ,leader接收请求
 
4 ,leader 发送 proposal 给 follower
 
5 ,follower 收到请求记录 txlog、snapshot、
 
6 ,follower 发送 ack 给 leader
 
7 ,commit :leader 收到 ack 后进行 commit,并且通知所有的【follower,observer】
 
8 ,follower 返回成功给客户端。

3.5,数据操作 :写入流程,observer

1 ,observer 接受请求,解析请求。
 
2 ,转发 :observer 将写请求转发给 leader
 
3 ,leader接收请求
 
4 ,leader 发送 proposal 给 follower
 
5 ,follower 收到请求记录 txlog、snapshot、
 
6 ,follower 发送 ack 给 leader
 
7 ,commit :leader 收到 ack 后进行 commit,并且通知所有的【follower,observer】
 
8 ,observer 返回成功给客户端。

3.6,数据操作 :写入流程,注意

1 ,leader 发送 proprsal 决议 :
 
  只给 follower 发送

4 ,zookeeper :数据 - znode

4.1,数据结构 :树形

zookeeper 数据存储在树形结构上

4.2,znode :数据节点

1 ,znode 节点 :
 
  存储数据 :例如,abcde
 
  有路径 :例如,/a/b/c/d

4.3,znode :数据大小 - 1m

每个 znode ,只能存储最多 1m 数据

4.4,znode :watcher - 观察者

1 ,可监听的事件 :4 种
 
  节点创建
 
  节点删除
 
  节点数据改变
 
  节点的子节点列表发生变更。
 
2 ,


http://www.kler.cn/a/306582.html

相关文章:

  • 执行flink sql连接clickhouse库
  • Linux系统编程多线程之条件变量和信号量讲解
  • 鸿蒙HarmonyOS 地图不显示解决方案
  • 记录使用documents4j来将word文件转化为pdf文件
  • 深度学习——优化算法、激活函数、归一化、正则化
  • 如何使用ffmpeg命令行进行录屏
  • 算法练习题27——疫情下的电影院(模拟)
  • AI辅助癌症诊断取得了进展
  • Angular面试题一
  • 大模型 LLM(Large Language Models)如今十分火爆,对于初入此领域的新人小白来说,应该如何入门 LLM 呢?是否有值得推荐的入门教程呢?
  • 深度学习自编码器 - 引言篇
  • java基于PDF底层内容流的解析对文本内容进行编辑
  • 象过河手机进销存,外出办公更方便,随时了解经营情况
  • C# 静态static
  • 基于HTML5的下拉刷新效果
  • 如何避免长距离遗忘问题
  • HarmonyOS NEXT 封装实现好用的网络模块(基于最新5.0的API12)
  • Android 12 Launcher3 去掉Hotseat
  • JVM 调优篇7 调优案例3- gc overhead limit exceed
  • ListBox显示最新数据、左移和右移操作
  • K8s中HPA自动扩缩容及hml
  • idea2024.2永久使用
  • MFC工控项目实例之十五定时刷新PC6325A模拟量输入
  • HTML添加文字
  • 【深度学习】Pytorch基础
  • 分享一些成功的 SQL 优化案例