没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
试读
16页
Zookeeper,作为一个关键的分布式应用协调框架,在多节点协作和数据同步方面发挥着不可或缺的作用。本文深入剖析了Zookeeper的核心概念,包括其基于内存的文件系统数据结构和高效的监听通知机制。详细介绍了Zookeeper的五种节点类型,包括持久化节点、持久化顺序节点、临时节点、临时顺序节点和容器节点,每种类型都有其独特的应用场景和功能。文章还探讨了Zookeeper在分布式系统中的经典应用,如配置中心、注册中心和分布式锁等,提供了丰富的实操示例和技术细节。此外,还涵盖了Zookeeper的ACL权限控制和内存数据与持久化机制,为读者提供了全面深入的技术视角。
资源推荐
资源详情
资源评论
1.什么是Zookeeper
2.Zookeeper核心概念
3.Zookeeper实操
4.ZookeeperACLs权限控制
5.ZooKeeper内存数据和持久化
在了解Zookeeper之前,需要对分布式相关知识有一定了解,什么是分布式系统呢?通常情况
下,单个物理节点很容易达到性能,计算或者容量的瓶颈,所以这个时候就需要多个物理节点来
共同完成某项任务,一个分布式系统的本质是分布在不同网络或计算机上的程序组件,彼此通过
信息传递来协同工作的系统,而Zookeeper正是一个分布式应用协调框架,在分布式系统架构中
有广泛的应用场景。
1.什么是Zookeeper?
官方文档上这么解释zookeeper,它是一个分布式协调框架,是ApacheHadoop的一个子项
目,它主要是用来解决分布式应用中经常遇到的一些数据管理问题,如:统一命名服务、状态同
步服务、集群管理、分布式应用配置项的管理等。
2.Zookeeper核心概念
上面的解释有点抽象,同学们暂时可以理解为Zookeeper是一个用于存储少量数据的基于内存
的数据库,主要有如下两个核心的概念:文件系统数据结构+监听通知机制。
2.1、文件系统数据结构
Zookeeper维护一个类似文件系统的数据结构:
每个子目录项都被称作为znode(目录节点),和文件系统类似,我们能够自由的增加、删除
znode,在一个znode下增加、删除子znode。
有四种类型的znode:
1、PERSISTENT持久化目录节点
客户端与zookeeper断开连接后,该节点依旧存在,只要不手动删除该节点,他将永远存在
2、PERSISTENT_SEQUENTIAL持久化顺序编号目录节点
客户端与zookeeper断开连接后,该节点依旧存在,只是Zookeeper给该节点名称进行顺序编号
3、EPHEMERAL临时目录节点
客户端与zookeeper断开连接后,该节点被删除
4、EPHEMERAL_SEQUENTIAL临时顺序编号目录节点
客户端与zookeeper断开连接后,该节点被删除,只是Zookeeper给该节点名称进行顺序编号
5.Container节点(3.5.3版本新增,如果Container节点下面没有子节点,则Container节点
在未来会被Zookeeper自动清除,定时任务默认60s检查一次)
6.TTL节点(默认禁用,只能通过系统配置zookeeper.extendedTypesEnabled=true开启,不稳
定)
2.2、监听通知机制
客户端注册监听它关心的任意节点,或者目录节点及递归子目录节点
1.如果注册的是对某个节点的监听,则当这个节点被删除,或者被修改时,对应的客户端将被通
知
2.如果注册的是对某个目录的监听,则当这个目录有子节点被创建,或者有子节点被删除,对应
的客户端将被通知
3.如果注册的是对某个目录的递归子节点进行监听,则当这个目录下面的任意子节点有目录结构
的变化(有子节点被创建,或被删除)或者根节点有数据变化时,对应的客户端将被通知。
注意:所有的通知都是一次性的,及无论是对节点还是对目录进行的监听,一旦触发,对应的监
听即被移除。递归子节点,监听是对所有子节点的,所以,每个子节点下面的事件同样只会被触
发一次。
2.3、Zookeeper经典的应用场景
1.分布式配置中心
2.分布式注册中心
3.分布式锁
4.分布式队列
5.集群选举
6.分布式屏障
7.发布/订阅
3.Zookeeper实战
3.1.zookeeper安装
Step1:配置JAVA环境,检验环境:
1 java‐version
Step2:下载解压zookeeper
1 wgethttps://mirror.bit.edu.cn/apache/zookeeper/zookeeper‐3.5.8/apache‐zookeepe
r‐3.5.8‐bin.tar.gz
2 tar‐zxvfapache‐zookeeper‐3.5.8‐bin.tar.gz
3 cdapache‐zookeeper‐3.5.8‐bin
Step3:重命名配置文件zoo_sample.cfg
1 cpzoo_sample.cfgzoo.cfg
Step4:启动zookeeper
1 #可以通过bin/zkServer.sh来查看都支持哪些参数
2 bin/zkServer.shstartconf/zoo.cfg
Step5:检测是否启动成功
1 echostat|nc192.168.109.200//前提是配置文件中中讲stat四字命令设置了了白名单
2 如:
3 4lw.commands.whitelist=stat
Step6:连接服务器
1 bin/zkCli.sh‐serverip:port
3.2.使用命令行操作zookeeper
输入命令help查看zookeeper所支持的所有命令:
1 [zk:localhost:2181(CONNECTED)80]help
2 ZooKeeper‐serverhost:portcmdargs
3 addauthschemeauth
4 close
5 config[‐c][‐w][‐s]
剩余15页未读,继续阅读
资源评论
- shiweixia2023-12-16学习了,资源不错 #运行顺畅 #内容详尽 #注释完整
光芒软件工匠
- 粉丝: 789
- 资源: 64
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功