当前位置:首页 » 《资源分享》 » 正文

《kafka问答100例 -4》 如果我手动在zk中添加/brokers/topics/{TopicName}节点会怎么样?_石臻臻的杂货铺

27 人参与  2021年10月14日 10:23  分类 : 《资源分享》  评论

点击全文阅读


🔥《Kafka运维管控平台》🔥
✏️更强大的管控能力✏️
🎾更高效的问题定位能力🎾
🌅更便捷的集群运维能力🌅
🎼更专业的资源治理🎼
🌞更友好的运维生态🌞
相关免费专栏
🔥《Kafka面试100例》🔥
🔥《从0开始学kafka》🔥

打卡日更 🔥《Kafka面试100例》🔥
当前更文情况:: 4 / 100

如果我手动在zk中添加`/brokers/topics/{TopicName}`节点会怎么样?

先说结论: 根据上面分析过的源码画出的时序图可以指定; 客户端发起创建Topic的请求,本质上是去zk里面写两个数据

  1. topic的配置信息 /config/topics/Topic名称 持久节点
  2. topic的分区信息/brokers/topics/Topic名称 持久节点
    所以我们绕过这一步骤直接去写入数据,可以达到一样的效果;不过我们的数据需要保证准确
    因为在这一步已经没有了一些基本的校验了; 假如这一步我们写入的副本Brokerid不存在会怎样,从时序图中可以看到,leaderAndIsrRequest请求; 就不会正确的发送的不存在的BrokerId上,那么那台机器就不会创建Log文件;

下面不妨让我们来验证一下;
创建一个节点/brokers/topics/create_topic_byhand_zk 节点数据为下面数据;

{"version":2,"partitions":{"2":[3],"1":[3],"0":[3]},"adding_replicas":{},"removing_replicas":{}}

在这里插入图片描述
这里我用的工具PRETTYZOO手动创建的,你也可以用命令行创建;
创建完成之后我们再看看本地有没有生成一个Log文件
在这里插入图片描述
可以看到我们指定的Broker,已经生成了对应的分区副本Log文件;
而且zk中也写入了其他的数据在这里插入图片描述
在我们写入zk数据的时候,就已经确定好了哪个每个分区的Leader是谁了,那就是第一个副本默认为Leader

👇 Topic创建流程深度解析请看下文 👇
🏃 创建Topic的源码解析 👈

可帮忙 「 内推 」一二线大厂

你好,我是石臻臻,工作8年的互联网老兵,丰富的开发和管理经验, 现在任职于「 滴滴技术专家 」岗位,从事开源建设工作,公众号讲解 Java/中间件/大数据 等技术栈相关内容,欢迎关注石臻臻,进滴滴 「 高质量 」 「 滴滴开源技术答疑群 」 , 群内每周技术专家轮流值班答疑,加石臻臻微信交个朋友,交流交流技术分享分享生活,每周五晚上8点抽奖送书 ,欢迎加我微信


点击全文阅读


本文链接:http://m.zhangshiyu.com/post/29866.html

数据  节点  创建  
<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

关于我们 | 我要投稿 | 免责申明

Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1