kafka启动流程分析

kafka启动流程分析

KafkaServer.startup()来完成KafkaServer的启动工作。startup方法会完成核心组件的初始化并启动这些组件。包括组件任务调度器( KafkaScheduler)、日志管理器 (LogManager)、 网络通信服务器 (SockeServer)、副本管理器 ( ReplicaManager)、 控制器 (KafkaController)、组协调器 ( GroupCoordinator)、动态配置管 理器 (DynamicConfigManager)以及 Kafka 健康状态检测 (KafkaHealthcheck)等。
(1)设置代理的状态为Starting 表示启动代理 (
代理状态机有6种状态:
a、NotRunning 0 代理未启动,
b、Starting 1 代理正在启动中 ,
c、 RecoveringFromUncleanShutdown 2 代理非正常关闭,在${1og.dir}配置的每个路 径下存在.katka cleanshutdown 文件
d、RunningAsBroker 3 代理己正常启动
e、PendingControlledShutdown 6 KatkaController 被关闭
f、BrokerShuttingDown 7 代理正在准备关闭

(2)启动任务调度器( KafkaScheduler )
构造一个线程总数为KaTeX parse error: Expected '}', got 'EOF' at end of input: …dlerPool 中主要是创建{ num.io.threads }个 KafkaRequestHandler, Handler 循环从 Request Channel 中取出 Request 并交给 kafka.server.KafkaApis 来处理具体的业务逻辑。 在实例化 KafkaRequestHandlerPool 之前先要实例化 KafkaApis, Kafka 将所有请求的 requestld 封装成一个 枚举类 ApiKeys。当前版本的 Kafka 支持 21 种类型的请求。
( 11 )实例化动态配置管理器。 注册监听 ZooKeeper 的/config 路径下各子节点信息变化。
(12) 实例化井启动 Kafka 健康状态检查 (KafkaHealthcheck)。 Kafka 健康检查机制主要是 在 ZooKeeper 的/brokers/ids 路径下创建一个与当前代理的 id 同名的节点,该节点也是一个临时 节点。当代理离线时,该节点会被删除,其他代理或者消费者通过判断/brokers/ids 路径下是否 有某个代理的 brokerId 来确定该代理的健康状态。
(13 )向 meta.prope叫es 文件中写入当前代理的 id 以及固定版本号为 0 的 version 信息。
( 14)注册 Kafka 的 m由ics 信息,在 KafkaServer 启动时将一些动态的 JMX Beans 进行注 册,以便于对 Kafka 进行跟踪监控。
最后将当前代理的状态设置为 RunningAsBroker,表示当前 KafkaServer 己正常启动完成,

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Kafka 0.9.0 是一个分布式流处理平台,用于高效地处理和传输大规模数据流。它采用了发布-订阅的消息队列模型,能够以高吞吐量、低延迟的方式处理数据。 在源码分析上,我可以给你一些大致的指导,但是详细的分析可能需要具体的问题或主题。以下是一些主要的模块和功能,你可以根据需要选择感兴趣的部分进行深入研究: 1. Broker:Kafka 的核心组件,负责接收、存储和转发消息。可以了解 Broker 的启动过程、消息存储机制和网络通信模块等。 2. Producer:负责向 Kafka 集群发送消息。可以了解 Producer 的消息发送流程、消息分区机制和消息确认机制等。 3. Consumer:负责从 Kafka 集群消费消息。可以了解 Consumer 的消息订阅机制、消费者组管理和消息位移管理等。 4. Topic 和 Partition:Kafka 将消息分为多个 Topic,并将每个 Topic 划分为多个 Partition。可以了解 Topic 和 Partition 的创建、分配和管理等。 5. Replica 和 Leader-Follower:Kafka 使用副本机制来保证数据的可靠性。可以了解 Replica 的同步和选举机制,以及 Leader-Follower 模型的实现细节。 6. ZooKeeper:Kafka 使用 ZooKeeper 来进行集群的协调和管理。可以了解 Kafka 对 ZooKeeper 的依赖和使用方式。 以上只是一些主要的模块和功能,Kafka 的源码非常庞大和复杂,涉及到很多细节和算法。如果你有具体的问题或感兴趣的主题,我可以提供更详细的指导。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值