一 ,leader 与 follower

1 ,架构图 :

2 ,zk 集群一个什么类型的集群 :主备集群

1 个主节点,其它全是备份节点。

3 ,过半原则 :

在 zk 的框架中,要想做点什么,不是看一台机器,而是看全体机器,需要有一半以上的机器同意才能办。例如新增数据,是否新增成功,不是看一台两台机器是否成功的存储了数据,而是要看整个集群,超过一半的机器成功的存储到数据,才认为存储成功了。

4 ,为什么我们的 zk 集群需要 3 台机器 ?

  1. zookeeper 集群启动也是要遵循过半原则的 : 要超过一半的机器启动,才认为整个集群已经启动了。
  2. zookeeper 集群需要有奇数台机器,比如 3 台,只要有 2 台机器启动成功,就认为集群启动成功了。
  3. 为什么不能 1 台,1 也是奇数 :当然不行,如果一共才一台,那就不叫集群了,也就没有了数据的备份了,这台机器如果坏了,数据就没了,zookeeper 是干嘛的,不就是为了高可用嘛,不就是为了备份嘛。
  4. 为什么不能两台:因为两台,没有办法过半,只能达到一半,不能超过一半。所有的偶数都不好办,都不容易造成过半。
  5. 结论:除了 1 以外,最小的奇数就是 3 了。也可以 5 台机器,但是我们同学的电脑都是普通电脑,禁不起 5 台虚拟机的消耗,所以我们最后决定用 3 台。

5 ,主节点 :leader

  1. 负责处理数据更新等操作( 遵守 zab 协议 )。
  2. zab 协议简介 :( 了解 )
    1 ,消息广播 :为了数据的一致性,leader 将数据内容通知整个集群。
    2 ,崩溃恢复 :如果 leader 挂了,那么 zookeeper 集群,将会从 follower 中重新选举一个 leader

6 ,备份节点 :follower

  1. 可以接受客户端请求。
  2. 可以自行解决查询任务。
  3. 不可以擅自进行数据更新操作,数据更新操作必须严格经过 leader 来操作。
  4. 选举:如果 leader 挂了,follower 之间可以互相投票,注意喽,follower 也是有可能成为 leader 的。

二 ,Observer ( 观察者节点 )

1 ,完整的 zookeeper 架构模型 :

2 ,zookeeper 集群中的节点,其实有 3 种角色 :

  1. leader :集群中的主节点。
    是整个集群的管理者,参与集群的全部工作内容,可以支配从节点。
  2. follower :集群中的从节点 ( 备份节点 )。
    集群中的备份节点,服从 leader 的命令,当 leader 挂了以后,follower 参与选举,每个 follower 都有成为 leader 的可能性。
    所以,就算 leader 挂了也不会怎么样,follower 之间可以重新选一个 leader 出来,zookeeper 集群依然可以正常工作。
  3. observer :集群中的观察者节点。
    功能跟 follower 相似,但是不参与 leader 选举,就相当于 observer 是一个世外高人,他只干活,他不是 leader ,也不是 follower ,他只想要过平淡的生活,他不投票给任何人,他自己也拒绝被人家投票,他就相当于永远只做集群的备份节点。

3 ,observer 的配置 :( 了解 )

  1. 假如,我们存在第四台机器,那么,我们要在第四台机器的 zoo.cfg 文件中加这么一行 :
# 本节点是 observer 节点
peerType=observer
  1. 第四台机器的 myid 文件内容 :
4
  1. 每一台机器的 zoo.cfg 文件都加这样的一行配置 :
# 第四台机器是 observer 节点
server.4:node04:2181:3181:observer

4 ,observer 作用 :提高性能

由于观察节点不参与写请求过程中达成共识的投票,因此使用观察节点可以让ZooKeeper集群在不影响写性能的情况下提高读操作的性能。

9 ,zk 架构模型相关推荐

  1. kafka 串讲:架构模型、角色功能梳理

    kafka 串讲:架构模型.角色功能梳理 kafka 的 what why how,先有一个粗略宏观的理解 rabbitmq.各种 mq 的技术选型.横向对比 首先,kafka 是一个消息中间件.我们 ...

  2. 浅谈Chatbot的架构模型和响应机制

    不知您是否已注意到:人工智能已经不再是少数科技公司的初级原型产品了.在许多服务类行业中,带有人工智能的聊天机器人(Chatbot)正在逐步取代人工客服,提供及时.周到.互动的服务.通过机器学习的相关技 ...

  3. ETSI MEC — 参考架构模型

    目录 文章目录 目录 ETSI MEC 参考架构模型 架构设计原则 分层架构 系统架构 CFS portal UE app User app LCM proxy OSS MEAO MEPM MEP V ...

  4. 4G EPS 的架构模型

    目录 文章目录 目录 前文列表 EPS 的架构 EPS 的架构模型 E-UTRAN UE eNodeB EPC MME(移动性管理) SGW(本地移动性锚点) PGW(业务锚点) HSS(用户认证及鉴 ...

  5. 【Android 逆向】ARM CPU 架构体系 ( ARM 处理器工作模式 | ARM 架构模型 )

    文章目录 一.ARM 处理器工作模式 二.ARM 架构模型 一.ARM 处理器工作模式 参考 [嵌入式开发]ARM 处理器工作模式 及 修改方法 ( 处理器模式 | 设置处理器模式 | 程序状态字寄存 ...

  6. 重磅发布 | 全球首个云原生应用标准定义与架构模型 OAM 正式开源

    作者: OAM 项目负责人 导读:2019 年 10 月 17 日,阿里巴巴合伙人.阿里云智能基础产品事业部总经理蒋江伟(花名:小邪)在 Qcon 上海重磅宣布,阿里云与微软联合推出开放应用模型 Op ...

  7. PowerDesigner 企业架构模型 ( EAM ) 说明

    一. 企业架构模型 说明 EnterpriseArchitecture Model(EAM),企业架构模型从业务层.应用层以及技术层的对企业的体系架构进行全方面的描述,包括业务流程.业务功能.系统.人 ...

  8. 浅析常用软件架构中的一定要理解的三种架构模型

    2019独角兽企业重金招聘Python工程师标准>>> 常用的软件架构模型可以归类为三种架构模型:3/N层架构."框架+插件"架构.地域分布式架构. 一.三种架构 ...

  9. PowerDesigner(三)-企业架构模型

    企业架构模型(Enterprise Architecture Model,EAM)是PowerDesigner 15新增的功能,它能够以图形的方式展现企业架构,从而取代文字描述:以偏向非技术性的表达方 ...

最新文章

  1. 使用R构建Xgboost模型并绘制ROC曲线
  2. word如何书写数学公式
  3. 架构师之路 — API 经济 — API 实现方式
  4. memcache的原理和命中率的总结
  5. 算法转AI平台工程师记录-0
  6. Create a PCL visualizer in Qt with QtDesigner
  7. OpenCV“智能剪刀“Intelligent Scissors的实例(附完整代码)
  8. 操作系统原理之I/O设备管理(第六章上半部分)
  9. oracle 切割字符串加引号_oracle存储过程中单引号及字符串拼接处理
  10. SicilyBrackets Matching
  11. 《编程之美》阅读分享
  12. 全网首发:终于把freetype的bitmap模式汉字字体旋转成功了
  13. Ubuntu下apache启动出错:Permission denied: make_sock: could not bind to address
  14. cesium加载倾斜优化_干货 | 6款倾斜摄影裸眼3D采集软件推荐给大家
  15. java xheditor 上传图片_xheditor上传图片的java实现
  16. Java 8:那些Java8的常见写法
  17. Mac小白应该使用App Tamer减慢或停止哪些应用程序?
  18. 告别“停车难”,条形智能停车场导视牌推动城市智能停车建设
  19. 怎样保护计算机桌面不被更改,Win7屏幕保护程序不能修改怎么办 win7无法设置电脑屏幕保护程序如何解决...
  20. 字节跳动杨震原:A/B测试不是万能的,但不会一定不行 ​

热门文章

  1. java 找出重复的数据_java 查找list中重复数据实例详解
  2. minio对象存储原理_使用MinIO在本地运行S3对象存储
  3. AI深度、机器学习数据集资源汇总
  4. linux内核使用scons构建,scons安装和使用
  5. git pages部署静态页面,可以免费发布简历之类的静态网页。
  6. python opencv BGR2RGB转换原理
  7. C# 汉字与拼音互转
  8. oppo小布机器人_腾讯宠粉狂欢季丨OPPO手机、腾讯听听音箱、小布AI机器人……100+份豪礼免费送!...
  9. 2020-03-18HTML
  10. Kali Linux 安装搜狗拼音输入法