IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> 为什么使用Zookeeper -> 正文阅读

[大数据]为什么使用Zookeeper

近期对zookeeper进行了学习,简单做一个知识总结。

一、什么是Zookeeper

ZooKeeper是一个分布式的开放源码分布式协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。由于Hadoop生态系统中很多项目都依赖于zookeeper,如Pig,Hive等, 似乎很像一个动物园管理员,于是取名为Zookeeper。

二、为什么要使用Zookeeper

  • 能够通过 Zab 协议来保证分布式事务的最终一致性
  • 同redis一样,内存操作

1. zookeeper 特点

  • 顺序性: 从同一客户端发起的事务请求,最终按照顺序应用到zookeeper中;Leader和Follower的连接有队列的存在,保证了顺序性
  • 原子性:整个集群,对于事务请求,要么全部应用成功,要么都没有应用;ZAB协议
  • 单一系统映像:无论客户端连接到哪个服务器,都将看到相同的服务视图;
  • 可靠性:具有简单、健壮、良好的性能,如果消息被推送到一台服务器接收,那么它将被所有的服务器接收;只能通过Leader对数据进行增改操作
  • 及时性:系统的客户视图保证在特定时间范围内是最新的。

2. zookeeper数据结构

在这里插入图片描述
在zookeeper中,它的数据结构与Linux很相似,像一个树形,有一个根节点,在根节点的基础上挂子节点。

  • 每一个节点都是一个znode节点
  • 每个节点可以存 1M 的数据

znode的类型:
可分为三类:持久性节点、临时性节点、顺序性节店,开发中有四种类型:持久节点、持久顺序节点、临时节点、临时顺序节点。

  • 持久节点:节点被创建后会一直存在服务器,直到删除操作主动清除,这种节点也是最常见的类型;
  • 持久顺序节点:有顺序的持久节点,节点特性和持久节点是一样的,只是额外特性表现在顺序上。顺序特性实质是在创建节点的时候,会在节点名后面加上一个数字后缀,来表示其顺序;
  • 临时节点:会被自动清理掉的节点,它的生命周期和客户端会话绑在一起,客户端会话结束,节点会被删除掉。与持久性节点不同的是,临时节点不能创建子节点。
  • 临时顺序节点:有顺序的临时节点,和持久顺序节点相同,在其创建的时候会在名字后面加上数字后缀。

znode中的存储内容有两部分:节点数据内容 和 节点状态信息
节点数据内容就是业务中要存储的数据,节点状态信息:

  • czxid(Create zxid) :表示节点被创建时的事务ID;
  • mzxid(Modified zxid):表示节点最后一次被修改时的事务ID;
  • ctime(Create time):表示节点创建时间;
  • mtime(Modified time):表示节点最后一次修改的时间;
  • pzxid:表示该节点的子节点列表最后一次被修改时的事务 ID。只有子节点列表变更才会更新 pZxid,子节点内容变更不会更新。
  • cersion:表示子节点的版本号;
  • dataVerion:表示内容版本号;
  • dataLength:表示数据长度;
  • numChildren:表示子节点数;
  • ephemeralOwner 表示创建该临时节点时的会话 sessionID,如果是持久性节点那么值为 0。

3. zap协议

在这里插入图片描述
可参考:

Zab协议详解

4. 使用场景

  • 配置中心
  • 分布式锁
  • 数据发布 / 订阅

三、具体场景实现

配置中心:zookeeper实现配置中心
分布式锁:待完成

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-01-30 18:59:54  更:2022-01-30 19:02:29 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 13:51:47-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码