拨开kafka 的外套

来源:互联网 发布:淘宝导航栏字体大小 编辑:程序博客网 时间:2024/04/27 13:39

最近闲来无聊,研究了一下 消息队列 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[String]): 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 启动都干了些什么。

 

0 0
原创粉丝点击