zookeeper名字由来

其名字汉译为动物管理员,因为Hadoop,Hbase,Hive等大数据技术的图标都是动物,而zookeeper作为Hadoop,Hbase集群的协调者来讲,像是一个动物园的管理员。

zookeeper选举机制

zookeeper启动后,分为两阶段①数据恢复阶段②选举阶段。

在第①阶段中会读取事物id,在第②阶段中根据选举协议来确定leader。

选举协议中有三个重要的概念:

a.事物id

b.选举id(配置文件中的myid)

c.过半性原则(得到的选票超过半数,除去observe机子,因为observer不参与投票,只监听投票结果)

选举时,先比较事物id,如果事物id大,且满足过半性,则为leader。如果事物id都一样,则比较选举id,选举id大,且满足过半性则其为leader。因此,假设有3台机子,都不为obsever机子,事物id都一样,选举id依次为1,2,3,依次启动这三台机子,那么整个集群的leader为机子2。如果启动顺序为1,3,2,那么leader为3机子。

zookeeper的zab协议

zab协议:为了保证zookeeper集群数据一致性的原子广播协议,其实对2pc协议的优化,2pc协议中如果有一个分支事物失败,则整个事物回滚,这个模式比较低效,而zab协议的优化是:成功的分支事物操作满足过半性后,整个事物就会成功,不用所有分支事物都成功。

observer

不参与投票和写请求,可以提供读请求。

zookeeper核心原理相关推荐

  1. 深入了解Zookeeper核心原理

    ZNode 这个应该算是Zookeeper中的基础,数据存储的最小单元.在Zookeeper中,类似文件系统的存储结构,被Zookeeper抽象成了树,树中的每一个节点(Node)被叫做ZNode.Z ...

  2. java zookeeper 主从热备_zookeeper 核心原理

    zookeeper 核心原理 1.了解zookeeper的设计 2.zookeeper集群角色 3.深入分析ZAB协议 4.从源码层面分析leader选举的实现过程 5.关于zookeeper的数据存 ...

  3. Zookeeper系列(二)、核心原理

    上一篇我们介绍了Zookeeper的一些基础知识,本篇来讲解zk内部的一些核心原理,帮助我们更好的理解zk的工作机制. 目录 选举机制 Leader选举流程 Leader选举原理 Watch机制 会话 ...

  4. ZooKeeper学习第七期--ZooKeeper一致性原理

    ZooKeeper学习第六期---ZooKeeper机制架构 ZooKeeper学习第一期---Zookeeper简单介绍 ZooKeeper学习第二期--ZooKeeper安装配置 ZooKeepe ...

  5. Zookeeper选举原理——FastLeaderElection

    转载自  Zookeeper选举原理 作为一个分布式应用程序协调服务,在大型网站中,其本身也是集群部署的,安装zookeeper的时候最好是单数节点,因为要选举.Zookeeper的leader节点是 ...

  6. 一文教你掌握 ZooKeeper 核心知识

    ZooKeeper 是一个分布式协调服务 ,由 Apache 进行维护. ZooKeeper 可以视为一个高可用的文件系统. ZooKeeper 可以用于发布/订阅.负载均衡.命令服务.分布式协调/通 ...

  7. ZooKeeper的原理(转)

    一.ZooKeeper的角色 领导者(Leader),负责进行投票的发起和决议,更新系统状态. 学习者(Learner),包括跟随者(Follower)和观察者(Observer),Follower用 ...

  8. zookeeper工作原理、安装配置、工具命令简介

    1 Zookeeper简介 Zookeeper 是分布式服务框架,主要是用来解决分布式应用中经常遇到的一些数据管理问题,如:统一命名服务.状态同步服务.集群管理.分布式应用配置项的管理等等. ZooK ...

  9. 阿里P8架构师谈:Zookeeper的原理和架构设计,以及应用场景

    什么是 Zookeeper Zookeeper 分布式服务框架是Apache Hadoop 的一个子项目,它主要是用来解决分布式应用中经常遇到的一些数据管理问题,如: 统一命名服务 状态同步服务 集群 ...

最新文章

  1. Android Studio引入.so文件的正确姿势 以及调用.so 文件时报错has text relocations 解决
  2. WinAPI: GetForegroundWindow - 获取前台窗口的句柄
  3. 简单的html渲染模板引擎
  4. CMOS图像传感器——相位对焦
  5. php访问url json,PHP操作URL和PHP操作json
  6. how hurt my eggs are, if two, please deep two.
  7. Dart获取系统和硬件信息
  8. php 和 apache的关系
  9. 如何手动释放linux内存的方法,centos手动释放内存的方法
  10. ue4 模板类实例化_Visual C#类和对象的创建方式,定义类,实例化对象,实例讲解...
  11. dll反编译工具ILspy下载及使用
  12. 客快物流大数据项目(二十九):下载CDH的安装包
  13. AES MODE_GCM
  14. linux 多核 双系统,Linux GRUB实现双系统引导教程
  15. JavaScript之E-mail 地址格式验证
  16. CSS“隐藏”元素的几种方法的对比
  17. PS软件学习知识盘点
  18. 计算机二本专业怎么进国企,这3所学校虽然是二本,但毕业后就业前景好,很容易进国企...
  19. 前端面试总结——http、html和浏览器篇
  20. GPS警用车辆3G视频监控系统方案

热门文章

  1. 2021年中国家用咖啡研磨机市场趋势报告、技术动态创新及2027年市场预测
  2. JAVA标准异常分两大类_java异常分类
  3. Conflux的自我进化:从DAG到树图| 对话伍鸣
  4. “POW'ER 2020 DEFI 创新者大会” | Conflux CTO 伍鸣畅谈公链如何成为 DeFi 的完美世界...
  5. 面向对象程序设计(JAVA)复习笔记(下)
  6. 毕业季好难抉择丨考研还是工作我该选哪一个?!
  7. cordova 微信支付
  8. 微信跳一跳python_用python来玩微信跳一跳
  9. 《使用IEC61499为控制系统建模》-第一章 概述
  10. oracle时间相减得到天_oracle中计算两个日期之间得天数、月数、年数