前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >《kafka问答100例 -4》 如果我手动在zk中添加/brokers/topics/{TopicName}节点会怎么样?

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

作者头像
石臻臻的杂货铺[同名公众号]
发布2021-09-14 15:37:35
3590
发布2021-09-14 15:37:35
举报
文章被收录于专栏:kafka专栏kafka专栏

????《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点抽奖送书 ,欢迎加我微信

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2021-09-12 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
消息队列 TDMQ
消息队列 TDMQ (Tencent Distributed Message Queue)是腾讯基于 Apache Pulsar 自研的一个云原生消息中间件系列,其中包含兼容Pulsar、RabbitMQ、RocketMQ 等协议的消息队列子产品,得益于其底层计算与存储分离的架构,TDMQ 具备良好的弹性伸缩以及故障恢复能力。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档