1970-01-01
14 Controller选举是怎么实现的?你好,我是胡夕。 上节课,我们学习了单线程事件队列模型处理Controller事件的代码。Controller组件通过ControllerEventManager类构造了一个阻塞队列,同时配以专属的事件处理...
14 Controller选举是怎么实现的?你好,我是胡夕。 上节课,我们学习了单线程事件队列模型处理Controller事件的代码。Controller组件通过ControllerEventManager类构造了一个阻塞队列,同时配以专属的事件处理...
15 如何理解Controller在Kafka集群中的作用?你好,我是胡夕。 上节课,我们学习了Controller选举的源码,了解了Controller组件的选举触发场景,以及它是如何被选举出来的。Controller就绪之后,就会行使它作为控制器...
16 TopicDeletionManager: Topic是怎么被删除的?你好,我是胡夕。今天,我们正式进入到第四大模块“状态机”的学习。 Kafka源码中有很多状态机和管理器,比如之前我们学过的Controller通道管理器ControllerC...
17 ReplicaStateMachine:揭秘副本状态机实现原理你好,我是胡夕。今天我们讲副本状态机。 前几节课,在讲Controller、TopicDeletionManager时,我反复提到副本状态机和分区状态机这两个组件。现在,你应该知道了...
18 PartitionStateMachine:分区状态转换如何实现?你好,我是胡夕。今天我们进入到分区状态机(PartitionStateMachine)源码的学习。 PartitionStateMachine负责管理Kafka分区状态的转换,和...
19 TimingWheel:探究Kafka定时器背后的高效时间轮算法你好,我是胡夕。今天,我们开始学习Kafka延时请求的代码实现。 延时请求(Delayed Operation),也称延迟请求,是指因未满足条件而暂时无法被处理的Kafka请求。举...
20 DelayedOperation:Broker是怎么延时处理请求的?你好,我是胡夕。 上节课,我们学习了分层时间轮在Kafka中的实现。既然是分层时间轮,那就说明,源码中构造的时间轮是有多个层次的。每一层所表示的总时长,等于该层Bucket数乘...
21 AbstractFetcherThread:拉取消息分几步?你好,我是胡夕。从今天开始,我们正式进入到第5大模块“副本管理模块”源码的学习。 在Kafka中,副本是最重要的概念之一。为什么这么说呢?在前面的课程中,我曾反复提到过副本机制是Kaf...
23 ReplicaManager(上):必须要掌握的副本管理类定义和核心字段你好,我是胡夕。 今天,我们要学习的是Kafka中的副本管理器ReplicaManager。它负责管理和操作集群中Broker的副本,还承担了一部分的分区管理工作,比如变更...
22 ReplicaFetcherThread:Follower如何拉取Leader消息?你好,我是胡夕。今天,我们继续学习Follower是如何拉取Leader消息的。 要弄明白这个问题,在学习源码的时候,我们需要从父类AbstractFetche...