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

zookeeper简介

目录

zookeeper概念

zookeeper的全局数据一致性

zookeeper集群角色

zookeeper文件系统

znode节点类型

zookeeper监听机制

zookeeper shell

典型应用


zookeeper概念

zookeeper是一个分布式协调服务的软件。主要用来解决分布式集群中应用系统的一致性问题。本质上是一个分布式的小文件存储系统

zookeeper的全局数据一致性

集群中的每个服务器都保存着一份相同的数据副本,cilent无论连接哪台服务器,看到的数据都是一样的;
Q:多个客户端同时操作不同服务器,会冲突,那如何保证全局一致性?

1.针对非事务性操作(查):不需要维护一致性

2.针对事务性操作(增、删、改):follower向leader转发事务性请求,leader把所有请求编成事务ID,根据编号进行执行。


zookeeper集群角色

leader:集群工作的核心,事务请求的唯一调度和处理者,保证集群事务处理的顺序性;集群内部各个服务器的调度者;给事务请求编号并执行操作

follower:处理客户端非事务请求,转发事务请求给leader;参与集群leader的选举投票

observer:不参与投票,但其他与follower作用一致,在不影响集群事务处理能力的前提下,提升集群的读写能力


zookeeper文件系统

一个标准的文件系统特征

1、采用树形目录结构,从根目录开始
3、由文件夹和文件组成
2、同一目录下,文件名唯一

而zookeeper文件系统特征

1、从结构上类似目录树结构
2、但内部没有文件夹、文件之分,统称为znode,既可以创建子目录,也可以保存数据
3、路径从/根目录开始



znode节点类型

持久节点:客户端断开连接后不会删除,需手动删除
持久带序号节点:持久化,且创建时自动添加单调递增序列号(如 /lock-0000000001),保证同路径下子节点唯一性
临时节点:客户端与 ZooKeeper 会话结束后自动删除,适合临时标识(如服务心跳)
临时带序号节点:临时节点 + 自动序列号,常用于分布式锁等场景

zookeeper监听机制

实现步骤

客户端给节点设置监听
节点事件发生,触发监听,客户端收到通知

监听特性

先注册再触发
一次性监听
异步通知
通知是使用event事件来封装的

zookeeper shell

Q:客户端操纵zookeeper集群分为几步?

1、客户端连接集群,建立会话
2、根据需求对zookeeper目录树进行增删改查
3、客户端断开连接,结束会话

连接zookeeper

①连接本地单机

zkCli.sh -server localhost:2181

②连接远程集群

zkCli.sh -server node1:2181,node2

#连接成功后,终端会显示 [zk: localhost:2181(CONNECTED) 0] 提示符


节点操作命令

①creat:创建节点,语法:create [-s] [-e] 节点路径 节点数据

-s:创建顺序节点,自动追加数字后缀
-e:创建临时节点,会话断开后自动删除

②get:查看节点数据,语法:get [-w] 节点路径

-w:对接待你注册监听器(数据变化时触发通知,一次性有效)

③set:更新节点数据,语法:set 节点路径 新数据 [版本号]

④delete:删除指定节点,该节点必须无子节点,语法:delete 节点路径 [版本号]

⑤deleteall:递归删除节点及其所有子节点

⑥ls:列出指定节点的直接子节点名称,ls [-w] 节点路径

-w:对子节点变化注册监听器(子节点增删时触发)

⑦ls2:列出子节点名称+节点元数据(等价于ls+stat)

⑧stat:查看节点的元数据(如版本号、创建时间、是否为临时节点等),语法:stat [-w] 节点路径

-w:注册监听器(节点删除或数据变化时触发)

查看集群状态

①conc:列出所有连接到当前zookeeper服务器的客户端会话信息

②ruok:检查当前服务器是否正常(返回imok表示正常)

③stats:查看当前服务器的状态信息(如启动时间、连接数、节点总数等)

④quit/exit:关闭连接

典型应用

①数据配置与同步(监听机制)

实现配置集中管理维护,达到自动更新同步的效果

②提供集群选举

实现集群选主,主挂掉备份切换成主

③分布式锁

在分布式系统中,多个节点可能同时操作共享资源,需要通过锁机制保证:同一时间只有一个节点能持有锁、锁释放后,其他节点能正确竞争到锁,避免死锁、部分节点故障不影响锁机制正常运行。

假设有 3 个客户端 A、B、C 竞争锁:

1、A 创建节点 /locks/lock-0000000001,B 创建 /locks/lock-0000000002,C 创建 /locks/lock-0000000003。
2、排序后,A 的节点序号最小,A 获取锁。
3、B 监听 A 的节点,C 监听 B 的节点,进入等待。
4、A 释放锁(删除 /locks/lock-0000000001),B 收到通知,发现自己是当前最小节点,获取锁。
5、B 释放锁后,C 收到通知,获取锁。

    http://www.dtcms.com/a/508051.html

    相关文章:

  1. 注册中心对比 -- eureka、nacos、consul、zookeeper、redis过期key
  2. php 茶叶网站网页qq登录保护怎么关闭
  3. 做南美生意做什么网站好网站维护需要多久时间
  4. MFC 在list右键弹出菜单栏功能 ,在list控件自定义绘制按钮控件
  5. 网站设计中的事件是什么宝钢工程建设有限公司网站
  6. vue3 之 基础+核心概念+上手技巧
  7. 兰州网站建设推荐q479185700顶上北京邢台企业商会网站
  8. TypeScript基础入门与数据类型
  9. PHP面试题——情景应用
  10. 看门狗设置
  11. 部门网站建设总结网上商城网站建设
  12. 做网站服务器哪种好外贸企业网站推广方案
  13. 合肥企业网站推广英文网站建设情况
  14. MVVM 架构 android
  15. 数据结构8:栈
  16. 激活函数只是“非线性开关“?ReLU、Sigmoid、Leaky ReLU的区别与选择
  17. C# 基础——多态的实现方式
  18. 【Nginx反向代理技术详解】原理、配置与实践
  19. 福州企业网站维护价格低网站建设人员的安排
  20. icon图标素材下载网站网络营销推广策划的步骤
  21. ObjectId objectId = gridFSTemplate.store(fileInputStream, “文件轮播对象“, ““)
  22. SpringBoot的actuator组件快速使用
  23. STM32学习(MCU控制)(GPIO)
  24. wordpress站点标题添加如何注册一个自己的公司
  25. 台州企业网站搭建价格网站开发的交付文档
  26. 橙色守护者:嘉顺达蓝海的危险品运输安全密码
  27. 安全监控摄像头通过智能组网模块实现联网报警和远程管理的实践解析
  28. AI时代的数据管理新范式:Git for Data让数据工程化
  29. Linux中内核调用用户空间程序的实现
  30. 建网站空间的详细说明网站备案怎么查询