定义: Zookeeper是一个开源的分布式的,为分布式应用提供协调服务的Apache项目。
工作机制: zookeeper从设计模式角度理解,是一个基于观察者模式设计的分布式服务管理框架,他负责存储和管理大家关心的数据,然后接受观察者的注册,一旦这些数据的状态发生了变化,zookeeper就将负责通知已经在zookeeper上注册的观察者做出相应的反应(说白了就是通知他们更新这些修改的数据)
工作特点:

  1. zookeeper:一个领导者(leader),多个跟随者(follower)组件的集群
  2. 集群中只要有半数以上的节点存活,集群就能正常服务
  3. 全局数据一致,每个server都保存一份相同的数据副本,client无论连接哪一个server,数据都是一样的
  4. 更新请求顺序进行,来自同一个的client更新请求按其发送顺序依次执行
  5. 数据更新原子性,依次数据更新要么成功,要么失败
  6. 实时性:在一定的时间范围内,client能读到最新的数据

数据结构:

应用场景: 提供的服务包括:统一命名服务、统一配置管理、统一集群管理、服务器节点动态上下线、软负载均衡等。

企业面试真题
请简述ZooKeeper的选举机制
1)半数机制:集群中半数以上机器存活,集群可用。所以Zookeeper适合安装奇数台服务器。
2)Zookeeper虽然在配置文件中并没有指定Master和Slave。但是,Zookeeper工作时,是有一个节点为Leader,其他则为Follower,Leader是通过内部的选举机制临时产生的。
3)以一个简单的例子来说明整个选举的过程。
假设有五台服务器组成的Zookeeper集群,它们的id从1-5,同时它们都是最新启动的,也就是没有历史数据,在存放数据量这一点上,都是一样的。假设这些服务器依序启动,来看看会发生什么,如图所示:

上图为Zookeeper的选举机制
(1)服务器1启动,此时只有它一台服务器启动了,它发出去的报文没有任何响应,所以它的选举状态一直是LOOKING状态。
(2)服务器2启动,它与最开始启动的服务器1进行通信,互相交换自己的选举结果,由于两者都没有历史数据,所以id值较大的服务器2胜出,但是由于没有达到超过半数以上的服务器都同意选举它(这个例子中的半数以上是3),所以服务器1、2还是继续保持LOOKING状态。
(3)服务器3启动,根据前面的理论分析,服务器3成为服务器1、2、3中的老大,而与上面不同的是,此时有三台服务器选举了它,所以它成为了这次选举的Leader。
(4)服务器4启动,根据前面的分析,理论上服务器4应该是服务器1、2、3、4中最大的,但是由于前面已经有半数以上的服务器选举了服务器3,所以它只能接收当小弟的命了。
(5)服务器5启动,同4一样当小弟。

ZooKeeper的监听原理是什么?

ZooKeeper的部署方式有哪几种?集群中的角色有哪些?集群最少需要几台机器?
(1)部署方式单机模式、集群模式
(2)角色:Leader和Follower
(3)集群最少需要机器数:3
ZooKeeper的常用命令

ls 、create 、get 、delete 、set…

学习zookeeper基础知识相关推荐

  1. Hadoop学习笔记—15.HBase框架学习(基础知识篇)

    Hadoop学习笔记-15.HBase框架学习(基础知识篇) HBase是Apache Hadoop的数据库,能够对大型数据提供随机.实时的读写访问.HBase的目标是存储并处理大型的数据.HBase ...

  2. python语言的单行注释以井号开头_推荐|零基础学习Python基础知识

    原标题:推荐|零基础学习Python基础知识 Python是一种面向对象.解释型计算机程序设计语言.语法简洁清晰,强制用空白符作为语句缩进. Python具有丰富和强大的库,又被称为胶水语言.能把其他 ...

  3. 关于图计算图学习的基础知识概览:前置知识点学习(PGL)[系列一]

    关于图计算&图学习的基础知识概览:前置知识点学习(Paddle Graph Learning (PGL)) 0.1图计算基本概念 首先看到百度百科定义: 图计算(Graph Processin ...

  4. 快速学习mysql_快速学习MySQL基础知识

    这篇文章主要梳理了 SQL 的基础用法,会涉及到以下方面内容: SQL大小写的规范 数据库的类型以及适用场景 SELECT 的执行过程 WHERE 使用规范 MySQL 中常见函数 子查询分类 如何选 ...

  5. 三 计算机知识的重要性分析,学习计算机基础知识对中专学生的重要性分析

    学习计算机基础知识对中专学生的重要性分析 [摘 要]本文主要介绍了计算机基础知识的内容,阐述了学习计算机基础知识对中专学生的作用,并且通过对计算机基础操作的学习,提高中专学生的计算机应用水平.希望本文 ...

  6. 谈计算机知识对学生的作用,浅谈学习计算机基础知识对中专学生的重要性

    [摘 要]本文主要介绍了计算机基础知识的内容,阐述了学习计算机基础知识对中专学生的作用,并且通过对计算机基础操作的学习,提高中专学生的计算机应用水平.希望本文可以让中专学生认识到学习计算机基础知识的重 ...

  7. 《机器学习》理论——速读学习1 基础知识

    <机器学习>理论--速读学习1 基础知识 该系列文章系个人读书笔记及总结性内容,任何组织和个人不得转载进行商业活动! Time: 2021-12-05 学习目标:我需要了解神经网络除了工程 ...

  8. A.关于图计算图学习的基础知识概览:前置知识点学习(Paddle Graph L)【一】

    图学习图神经网络算法专栏简介:主要实现图游走模型(DeepWalk.node2vec):图神经网络算法(GCN.GAT.GraphSage),部分进阶 GNN 模型(UniMP标签传播.ERNIESa ...

  9. 直播平台怎么搭建,你要先来学习音频基础知识

    直播平台怎么搭建,你要先来学习音频基础知识 概述 本片文章主要介绍音频基础,在做音频开发之前首先必须要对音频的相关概念了解.以下是具体内容概述: 常见的音频格式 WAV MP3 WMA RA APE ...

最新文章

  1. 区块链相关论文研读3- 关于超级账本Hyperledger Fabric的性能优化
  2. python网络爬虫程序_使用Python写的第一个网络爬虫程序
  3. 【Windows 逆向】OD 调试器工具 ( OD 附加进程 | OD 调试器面板简介 | 反汇编窗口 | 寄存器窗口 | 数据窗口 | 堆栈窗口 )
  4. Delphi 的绘图功能[10] - TFONT 类
  5. 第 5-5 课:线程安全——synchronized 和 ReentrantLock + 面试题
  6. iPhone SE 2生产无限期推迟,苹果决定推迟3月份产品发布会
  7. 电子围栏判断_电子围栏大用处:进出罐箱指定区域自动通知amp;罐箱库存和使用率自动计算...
  8. springmvc 控制器 读取properties文件
  9. FusionChartsFree例子
  10. 开源重磅分销版微信商城源码首发
  11. 入手kindle 3
  12. 微信扫码下载APP,苹果,安卓多码合一,微信下载pdf报告,文件解决方案
  13. python 年月日转换日期_python 二〇二〇年九月二十四日 汉字日期转化为数字日期...
  14. redhat指定ntp服务器,redhat 6.3 ntp 服务器
  15. Android跳转到手机自启动管理页面
  16. c 执行oracle 函数,Oracle 下医嘱执行函数
  17. Codeforces 1293 E. Xenon‘s Attack on the Gangs —— 树上记忆化搜索,单点加改成区间加,有丶东西
  18. EasyExcel导出数据到Excel,浏览器提供下载
  19. 往证书图片上填充文字内容
  20. hibernate+servlet+mysql 实现easypoi_在Maven项目中使用easypoi完成Excel文件上传下载(示例代码)...

热门文章

  1. 每日codewars题之判断一个数是否是水仙花数
  2. 点击复制,兼容ios-safari
  3. day1: python3.5学习
  4. Solidworks如何在自定义的基准面上创建3D草图
  5. 与缓存有关的http-header
  6. outlook常见错误分析指南
  7. [笔记].关于使用JLINK的三线SWD模式调试NUC1xx的一点粗浅认识
  8. NagiosQL 3的安装
  9. 决定成败的人生细节(转)
  10. 多线程编程(1): python对多线程的支持