《kafka问答100例 -8》 如果写入`/brokers/topics/{TopicName}`节点之后Controller挂掉了会怎么样

2021-11-11 15:24:19 浏览数 (2)

如果写入`/brokers/topics/{TopicName}`节点之后Controller挂掉了会怎么样?

先说结论:Controller 重新选举的时候,会有一些初始化的操作; 会把创建过程继续下去

然后我们来模拟这么一个过程,先停止集群,然后再zk中写入/brokers/topics/{TopicName}节点数据; 然后再启动一台Broker; 源码分析: 我们之前分析过Controller的启动过程与选举 有提到过,这里再提一下Controller当选之后有一个地方处理这个事情 replicaStateMachine.startup() partitionStateMachine.startup() 启动状态机的过程是不是跟 创建Topic的源码解析6.1 onNewPartitionCreation 状态流转 的过程很像; 最终都把状态流转到了OnlinePartition; 伴随着是不发起了leaderAndIsrRequest请求; 是不是Broker收到请求之后,创建本地Log文件了

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

0 人点赞