htbzwd 发表于 2017-5-23 16:57:35

拨开kafka 的外套

  最近闲来无聊,研究了一下 消息队列 kafka,拜读了其源代码。
  阅读源代码的准备:
  1.  由于kafka 使用scala 这种语言编写,所以想要看的更人性化一些,请安装 scala ide 自己谷歌一下, 建议到官网上下, 这是一个scala 的 eclipse 插件,一定注意下载跟自己eclipse 版本配套的插件, 如果你确定能用记事本看, 可以无视这一点。
  2.  下载kafka , 并到目录下,执行 ./sbt 下载依赖,在 core 目录下,有kafka 的源代码, 看目录结构很显然是个maven 工程,不过没找到pom.xml , 不过这个问题不是问题。找到源代码之后, 在eclipse 中 新建一个 scala project , 然后源代码搞进来, 还有一步是找依赖, 是的,在core\lib_managed\scala_2.8.0\compile 下有你想要的一切。
  好,咱们开始!

def main(args: Array): Unit
  main是万恶之源, 咱们就从这里开始。

      val props = Utils.loadProps(args(0))
val serverConfig = new KafkaConfig(props)
  这里加载一些乱七八糟的配置,即是用了 config 目录下的配置。

val kafkaServerStartble = new KafkaServerStartable(serverConfig)
  这句相当于初始化整个 kafka 

      Runtime.getRuntime().addShutdownHook(new Thread() {
override def run() = {
kafkaServerStartble.shutdown
kafkaServerStartble.awaitShutdown
}
});
  给jvm 加上一个hook ,此方法的作用是让jvm 在退出之前干这个, 干什么的 ,shutdown kafka。

      kafkaServerStartble.startup
kafkaServerStartble.awaitShutdown
  好, kafka开始。
  over 
  外衣脱掉了,是否索然无味, 是的, 我也这么认为,下一章着重讲讲,kafka broker 启动都干了些什么。
页: [1]
查看完整版本: 拨开kafka 的外套