Kafka从上手到实践 - 初步认知:Zookeeper | 凌云时刻
凌云时刻 · 技术
导读:这一节我们来认识一下在Kafka中有着超然地位的Zookeeper。
作者 | 计缘
来源 | 凌云时刻(微信号:linuxpk)
Zookeeper 初识
ZooKeeper 分布式服务框架是Apache Hadoop 的一个子项目,它主要是用来解决分布式应用中经常遇到的一些数据管理问题,如:统一命名服务、状态同步服务、集群管理、分布式应用配置项的管理等。简化分布式应用协调及其管理的难度,提供高性能的分布式服务。ZooKeeper的目标就是封装好复杂、易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。
Zookeeper有以下一些特点:
Zookeeper的内部数据结构是树状结构的。
每个节点称为zNode。
每个zNode都有一个唯一路径(path)。
zNode分长久存在的和临时存在的。
每个zNode都可以存储数据。
zNode不能重命名。
每个zNode的任何变化都可以被监控。
所以Zookeeper作为一个分布式的服务框架,主要用来解决分布式集群中应用系统的一致性问题,它能提供基于类似于文件系统的目录节点树方式的数据存储,Zookeeper作用主要是用来维护和监控存储的数据的状态变化,通过监控这些数据状态的变化,从而达到基于数据的集群管理,可以说,Zookeeper相当于带有通知机制的文件系统。
Role of Zookeeper in Kafka
Zookeeper在Kafka中的地位是超然的。它的主要作用有以下几点:
Zookeeper管理着Kafka集群中的若干个Broker,保存着一份完整的Broker列表。
维护Topic信息,比如Partitions、Replication Factor、ISR等。
Zookeeper帮助选举Partition的Leader.
当有任何变动时,由Zookeeper给Kafka发送通知,比如添加一个新的Topic、Broker挂掉了、删除Topic等等。
Zookeeper集群中也有Leader和Follower的概念。Leader负责写数据,Follower负责读数据.
存储Kafka集群ID。
存储访问控制列表(ACL,Access Control List)。控制Topic、Consumer Group、User等访问权限。
Size of Zookeeper
Zookeeper对于Kafka有一个很重要的投票选举功能。所以通常情况下Zookeeper集群最少使用三个Server。如果增加更多Server,那最好是奇数个Server(3,5,7,9,2N+1)。因为Zookeeper有一个特性,就是集群中只要有过半的机器是正常工作的,那么整个集群对外就是可用的。也就是说如果有2个Zookeeper Server,那么只要有1个Zookeeper Server宕机,整个集群就不能用了,因为1没有过半,所以我们要搭建奇数个Server,这样就可以保证最大允许1,2,3,4,N个Server宕机,而保证整个系统不受影响。
小结
这一章节带大家初步认知了Zookeeper是什么,以及他在Kafka中为何具有超然的地位。和Kafka CLI一样,Zookeeper也有命令行工具,下一章节将会进行Zookeeper CLI的介绍,希望可以给小伙伴们带来帮助。
END
往期精彩文章回顾
Kafka从上手到实践:Kafka Java Consumer
Kafka从上手到实践:Kafka Java Producer
Kafka CLI:Reseting Offset & Config CLI
Kafka CLI:Consumer CLI & Producer CLI
Kafka CLI:Topic CLI & Producer CLI
Kafka从上手到实践 - 实践真知:搭建单机Kafka
Kafka从上手到实践 - 庖丁解牛:Consumer
Kafka从上手到实践 - 庖丁解牛:Producer
Kafka从上手到实践 - 庖丁解牛:Partition
Kafka从上手到实践 - 庖丁解牛:Topic & Broker
Kafka从上手到实践 - 初步认知:MQ系统
长按扫描二维码关注凌云时刻
每日收获前沿技术与科技洞见
Kafka从上手到实践 - 初步认知:Zookeeper | 凌云时刻相关推荐
- Kafka+Storm+HDFS整合实践
2019独角兽企业重金招聘Python工程师标准>>> 在基于Hadoop平台的很多应用场景中,我们需要对数据进行离线和实时分析,离线分析可以很容易地借助于Hive来实现统计分析,但 ...
- Kafka复习计划 - 客户端实践及原理(消费者组/位移/请求处理过程)
Kafka复习计划 - 客户端实践及原理(消费者组/位移/请求处理过程) 前言 一. 消费组 1.1 Rebalance 重平衡 1.2 Coordinator 协调者 1.3 如何尽量避免消费者组重 ...
- 深入理解Kafka核心设计与实践原理_01
深入理解Kafka核心设计与实践原理_01 01_初识Kafka 1.1 基本概念 1.2 安装与配置 1.3 生产与消费 1.4 服务端参数配置 01_初识Kafka 1.1 基本概念 一个典型的 ...
- 超详细 kafka 入门(最佳实践)
今日推荐6年,终拿腾讯 offer! 都2021年了,你还在用Jenkins?赶快看看这些替代方案吧! 盘点 12 个 GitHub 上的高仿项目 CTO 说了,用错 @Autowired 和 @Re ...
- 《深入理解Kafka:核心设计与实践原理》笔误及改进记录
2019年2月下旬笔者的有一本新书--<深入理解Kafka:核心设计与实践原理>上架,延续上一本<RabbitMQ实战指南>的惯例,本篇博文用来记录现在发现的一些笔误,一是给购 ...
- Apache Kafka 不需要管理员:删除 Apache ZooKeeper 的依赖
点击上方"朱小厮的博客",选择"设为星标" 后台回复"加群",加入新技术 目前,Apache Kafka 使用 Apache ZooKeep ...
- 如何成为一名数据分析师:数据的初步认知
作者 | 钟家福 杏仁医生数据工程师,关注数据分析与挖掘. 对所有从事数据相关工作的人而言,都有一个老生常谈的问题:数据认知!毕竟在真正开始分析.BI 报表开发或者建模前,对数据进行一定的审查和认知是 ...
- Python的初步认知与安装步骤 (小白必备)
Python的初步认知与安装步骤 Python初步认知 安装步骤 基础代码测试(变量.数据类型) 运算符.条件结构.循环结构 思维导图 Python初步认知 Python简介 Python是一种跨平台 ...
- 类和对象(面向对象的初步认知)
面向对象的初步认知 什么是面向对象 Java是一门纯面向对象的语言(Object Oriented Program,简称OOP),在面向对象的世界里,一切皆为对象.面向对象是解决问题的一种思想,主要依 ...
- 关于浏览器运行原理的初步认知
在对浏览器运行原理的认知过程中我们首先需要精细的了解一些"概念" 这些"概念"也许理解起来很容易,但没有精细理解的时候很容易忽视 而在没有精细了解这些" ...
最新文章
- Mysql-study
- @Value@PropertySource@ConfigurationProperties注解使用
- jsp的jstl的foreach标签
- http --- 密码、密钥、对称(公开)密钥加密系统、数字签名、数字证书的一些概念
- 航天有关的计算机知识,这些关于神舟十二上的电脑硬核小知识,你知道吗?
- 442.数组中重复的数据
- 元宇宙游戏控制这几个因素,正确姿势解锁元宇宙游戏开发盈利痛点
- 大米云如何通过ssh连接云主机
- 耶耶!我进了全国网络管理员前50了
- android10 systemUI亮度调节分析
- 锤子使用手册 android,锤子爱好者的新手使用指南
- 水平凡 创建新的插件
- 龙芯IPC追平Zen2 稳步推进产业生态
- bp神经网络,多输入多输出,3层网络matlab程序
- 转:vue+canvas如何实现b站萌系登录界面
- 4K屏幕/高分辨率屏幕运行VMware虚拟机图标字体太小问题解决方案(linux系统)
- windows和Linux未来,一家之言:Windows系统的未来就是变成Linux的一部分
- Hbase2.3.5安装
- dede判断手机访问电脑端网站跳转代码
- java 行为树_行为树(Behavior Tree)【转载】
热门文章
- textarea 在 Chrome Safari FireFox 浏览器中禁用拖动和固定大小
- 关于DHCP的中继问题
- Logistic回归模型(C++代码实现)
- ActiveX控件dsoFramer的使用(word、excel、PPT)
- 微信公众号在调用扫一扫功能时,一维码(条形码)在直接返回结果时会在结果前带上EAN_8, EAN_13, CODE_25, CODE_39, CODE_128, UPC_A, UPC_E...
- 20165234 《Java程序设计》第八周学习总结
- 用Python爬虫爬取“女神吧”上的照片。
- View绘制详解(四),谝一谝layout过程
- canvas绘制圆和弧(三)
- 【Vegas原创】Oracle批量create、Lock user的方法