跟我学Kafka源码之Broker Server

本文深入探讨Kafka Broker的核心类,包括KafkaServerStartable的启动过程,KafkaServer的角色,以及涉及的模块如KafkaScheduler、Zookeeper连接、LogManager、ReplicaManager等。文章将详细分析每个组件的功能,并预告后续将对这些启动项逐一展开讲解。
摘要由CSDN通过智能技术生成

本章,我们将进入到Kafka的核心类中进行代码走读,深入分析他的存储交互和消息分发原理。

首先给大家展示一张服务端交互图,因为比较复杂我就没有再画,转发别人的一张图以供参考:

 大家看完这个图以后相信有了一个整体认识,那么下面我们就重点从整体到细节的逐步分解。

 

一、KafkaServerStartable

在Kafka的main入口中startup KafkaServerStartable, 而KafkaServerStartable这是对KafkaServer的封装

我们使用命令行./kafka-server-start.sh -daemon ../config/server.properties 进行启动的时候,也是调用的这个类。

 

class KafkaServerStartable(val serverConfig: KafkaConfig) extends Logging {
  private val server = new KafkaServer(serverConfig)

  def startup() {
    try {
      server.startup()
      AppInfo.registerInfo()
    }
    catch {
      case e: Throwable =>
        fatal("Fatal error during KafkaServerStartable startup. Prepare to shutdown", e)
        // KafkaServer already calls shutdown() internally, so this is purely for logging & the exit code
        System.exit(1)
    }
  }

  def shutdown() {
    try {
      server.shutdown()
    }
    catch {
      case e: Throwable =>
        fatal("Fatal error during KafkaServerStable shutdown. Prepare to halt", e)
        System.exit(1)
    }
  }

  /**
   * Allow setting broker state from the startable.
   * This is needed when a custom kafka server startable want to emit new states that it introduces.
   */
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值