Kafka06-进阶-尚硅谷 - 实践
3-Kafka进阶
文章目录
- 3-Kafka进阶
- @[toc]
- 3.1 Controller选举
- Controller?就是3.1.1 什么
- 3.1.2 如何选出Controller?
- 3.1.3 脑裂与epoch
- 3.2 Broker上下线感知
- 3.2.1 监听机制
- 3.3 数据偏移量定位
- 3.3.1 分区物理结构
- 3.3.2 稀疏索引
- 3.4 Topic删除
- 3.5 日志清理/压缩
- 3.5.1 时间/大小删除(delete)
- 3.5.2 日志压缩(compact)
- 3.6 页缓存(PageCache)
- 3.7 零拷贝
- 3.8 顺序写日志
- 3.9 Linux集群部署(3节点)
- 3.9.1 规划
- 3.9.2 关键脚本
- 3.10 Kafka-Eagle监控
- 3.11 KRaft模式(无ZooKeeper)
- 3.11.1 优势
- 3.11.2 部署要点
文章目录
- 3-Kafka进阶
- @[toc]
- 3.1 Controller选举
- Controller?就是3.1.1 什么
- 3.1.2 如何选出Controller?
- 3.1.3 脑裂与epoch
- 3.2 Broker上下线感知
- 3.2.1 监听机制
- 3.3 数据偏移量定位
- 3.3.1 分区物理结构
- 3.3.2 稀疏索引
- 3.4 Topic删除
- 3.5 日志清理/压缩
- 3.5.1 时间/大小删除(delete)
- 3.5.2 日志压缩(compact)
- 3.6 页缓存(PageCache)
- 3.7 零拷贝
- 3.8 顺序写日志
- 3.9 Linux集群部署(3节点)
- 3.9.1 规划
- 3.9.2 关键脚本
- 3.10 Kafka-Eagle监控
- 3.11 KRaft模式(无ZooKeeper)
- 3.11.1 优势
- 3.11.2 部署要点
3.1 Controller选举
3.1.1 什么是Controller?
- Kafka集群唯一“大脑”,负责分区Leader选举、副本迁移、Topic创建/删除等全局协调工作。
3.1.2 如何选出Controller?
- 所有Broker抢先在ZooKeeper创建
/controller
临时节点,成功者即为Controller;其余Broker监听该节点变化。
3.1.3 脑裂与epoch
- 网络抖动可能导致旧Controller“复活”。Kafka为每次选举递增epoch(纪元),Broker发现epoch小于当前值即主动退位,避免脑裂。
3.2 Broker上下线感知
3.2.1 监听机制
- Controller启动时在ZK注册大量Watcher,关键路径:
/brokers/ids
。 - Broker上线:创建临时节点
/brokers/ids/{brokerId}
;Controller立即同步元数据。 - Broker下线:会话超时节点消失;Controller将该Broker上的Leader分区重新选举并通知全网。
3.3 材料偏移量定位
3.3.1 分区物理结构
- 每个Partition→多个Segment记录(.log/.index/.timeindex)。
- 文件名=该段起始offset,固定20位数字。
3.3.2 稀疏索引
- 默认每写4KB(
log.index.interval.bytes
)才在.index写一条entry:相对offset(4B)+物理position(4B)。 - 查找时先跳跃表定位Segment,再用二分找不大于目标offset的索引项,顺序扫描.log。
3.4 Topic删除
方式 | 场景 | 关键步骤 |
---|---|---|
快速配置 | 允许停机 | delete.topic.enable=true +kafka-topics.sh --delete |
策略删除 | 长期保留 | 设置log.cleanup.policy=delete +时间/大小阈值 |
手动删除 | 不能改配置 | 删除ZK元数据/brokers/topics/{topic} +各Broker本地日志目录 |
3.5 日志清理/压缩
3.5.1 时间/大小删除(delete)
- 全局阈值:
log.retention.hours=168
、log.retention.bytes=-1
。 - Segment级按最大时间戳判断,只要有一条未过期即保留整段。
3.5.2 日志压缩(compact)
log.cleanup.policy=compact
:相同key仅保留最新记录,用于状态类Topic。
3.6 页缓存(PageCache)
- 生产者顺序写→先写OS页缓存,由内核异步刷盘;消费者读命中缓存即内存级速度。
- 参数
log.flush.interval.messages/ms
可强制同步刷盘,但推荐用多副本保可靠而非同步刷盘。
3.7 零拷贝
- 消费/副本同步时,通过
sendfile
系统调用,数据直接页缓存→网卡,省去用户态与内核态来回拷贝,单磁盘顺序读可达600MB/s。
3.8 顺序写日志
- 仅追加写ByteBuffer,满刷盘;避免随机寻址,性能远高于随机写(600MB/s vs 100KB/s)。
3.9 Linux集群部署(3节点)
3.9.1 规划
节点 | IP | 角色 |
---|---|---|
kafka-broker1 | 192.168.10.101 | ZK+Kafka |
kafka-broker2 | 192.168.10.102 | ZK+Kafka |
kafka-broker3 | 192.168.10.103 | ZK+Kafka |
3.9.2 关键脚本
xsync
:循环rsync文件到各节点。zk.sh start|stop|status
:一键启停ZK集群。kfk.sh start|stop
:一键启停Kafka集群。cluster.sh start|stop
:先启ZK再启Kafka,关闭时顺序相反并等待Kafka进程归零。
3.10 Kafka-Eagle监控
- 依赖MySQL存储指标;修改
kafka-server-start.sh
增加JMX端口9999
。 - 配置
system-config.properties
后,ke.sh start
启动,访问http://broker1:8048
(admin/123456)。
3.11 KRaft模式(无ZooKeeper)
3.11.1 优势
- 单进程部署、元数据自管理;扩展性提升至百万分区;Controller由配置静态指定,避免动态选举抖动。
3.11.2 部署要点
- 解压并重命名
kafka-kraft
。 - 修改
config/kraft/server.properties
:process.roles=broker,controller
node.id=1/2/3
(各节点唯一)controller.quorum.voters=1@broker1:9093,2@broker2:9093,3@broker3:9093
- 生成集群ID:
bin/kafka-storage.sh random-uuid
,再format
所有节点。 - 启停脚本
kfk2.sh
与ZK版类似,仅替换路径与配置文件。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/927576.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!相关文章
北京高端网站建设价格网站广东省备案
前面学习完怎么搭建个人博客,后面要做的就是排版优化自己的博客了,今天通过教程学习到了然后更爱美化其中的效果,还通过改写代码来带到基本的效果展示,同时也把最开始学习的计算速成课的笔记输出在上面,这也是一个很好…
框架高效的系统的演进如何塑造人工智能的深层语义分析能力
框架高效的系统的演进如何塑造人工智能的深层语义分析能力pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consola…
『回忆录』高二上第一次月考——压力下的崛起,意料外的突破
初入高二的第一月,第一次进年级 20。明天晚上写,留坑。
最近一直想写回忆录,但是每当有机会坐在电脑面前码字时脑子基本上都是一片空白,再加上可能有家长催促睡觉没有什么灵感。明天晚上是最好的时间了,一回来就写…
AutoCAD 2025安装包下载 CAD免费下载 永久免费激活 附详细安装教程
一、软件下载链接软件名称:CAD2025软件大小:2.69GB安装环境:Win10以及以上下载链接:
夸克网盘:https://pan.quark.cn/s/f6eebbc21976
迅雷网盘::https://pan.xunlei.com/s/VOajN0S5FvdahBySrZeSj-L6A1?pwd=mg7…
深度学习(1)-利用Pytorch2结合U-Net大模型实现图像降噪 - 教程
深度学习(1)-利用Pytorch2结合U-Net大模型实现图像降噪 - 教程2025-10-04 21:23
tlnshuju
阅读(0)
评论(0) 收藏
举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !imp…
炫酷的html5网站电商小程序源码
参数级联查询是查询控件之间的一种互动方式,比如在某个下拉框选定选项后,另一个下拉框里的选项范围会随之变化。润乾报表提供了多种编辑风格,每种编辑风格都有丰富的属性,以此为基础实现参数级联查询也很简单。下面就通过一个例子…
在哪进入网站后台汽车行业网站设计
解析
一直在路径可逆上做功夫,跑偏了。
题目可以转化为一个模型:给出一张无向图,每次可以移动到未移动过的点上,不能移动者判负。
这个的做法就是判断是否完美匹配,完美匹配则后手必胜,否则先手必胜。
…
网站突然排名没了网页设计服务公司
文章目录 推荐 前言1. 安装RStudio Server2. 本地访问3. Linux 安装cpolar4. 配置RStudio server公网访问地址5. 公网远程访问RStudio6. 固定RStudio公网地址 推荐 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下…
广西新农村建设工作专题网站wordpress 4.8正式版
标准模版库STL
<algorithm> 算法库
max, min 用于找出一组值中的最大值和最小值
swap 用于交换两个变量的值
sort 用于对一个范围内的元素进行排序
lower_bound, upper_bound 用于在已排序的容器中查找元素的下界和上界
unique(a,an)-a 用于在一个范围内删除相邻重…
202509_QQ_secret
图片隐写,BMP,StegSolveTags:图片隐写,BMP,StegSolve,Analysis-File
0x00. 题目
附件路径:https://pan.baidu.com/s/1GyH7kitkMYywGC9YJeQLJA?pwd=Zmxh#list/path=/CTF附件
附件名称:202509_QQ_secret.zip
0x01. WP…
网站开发视频教程迅雷下载凡客诚品简介
一日不见如隔三秋,本人觉得有界变差函数是实变函数中最容易理解且和高等数学联系最紧密的一个概念,其在概率论中也有非常广泛的应用,也和勒贝格空间有着千丝万缕的联系。什么叫有界变差函数?若在区间(a,b)中࿰…
创世网站网络建设鑫牛元网站建设
转自个人微信公众号【Memo_Cleon】的统计学习笔记:协方差分析:方差分析与线性回归的统一。在进行数据分析时,有时候我们会遇到数据基线不平的情况,比如两样本的t检验的示例,比较Labe和Meto用药13周的降压效果ÿ…
网站美工设计详细步骤珠海市手机网站建设公司
文章目录 435.无重叠区间按右边界排序CPP代码 按左边界排序如何判断相邻区间是否重叠如何判断一下一个区间与当前相邻区间是否重叠总结CPP代码 763.划分字母区间思路伪代码实现CPP代码 56. 合并区间思路CPP代码 435.无重叠区间 力扣题目链接 文章链接:435.无重叠区间…
网站图片要多少像素谷歌官方网站注册
还原某个文件到指定版本 svn export -r 10520 resanaly.lua --force 设置忽略指定后缀文件, 例如忽略 .lc 后缀的文件, -R 是递归文件夹,path 为指定的起始目录 svn propset svn:ignore -R “*.lc” path svn propget svn:ignore -R 查看忽略设置 设置后…
商务网站建设与维护(专21春)深圳装修公司排名前十
总第 114 篇文章,本文大约 1300 字,阅读大约需要 4 分钟这是 2020 年的第一篇月总结,总结的内容和周记差不多,也还是从这几个方面进行总结:工作学习阅读&写作2月计划工作这个月的工作时间大概是2周多一点ÿ…
Matlab R2024b下载及详细安装教程,附永久免费Matlab安装包
一、MATLAB R2024b 下载
在开始安装前,请确保已下载 MATLAB R2024a 安装包,同时,确认计算机满足软件的最低系统要求,以保证安装和运行的流畅性。
夸克网盘:https://pan.quark.cn/s/3598f84971f4
迅雷网盘:https:…