`
sharp-fcc
  • 浏览: 106067 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

拨开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[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 启动都干了些什么。

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics