配景
从kafka也算有两年了,用它做了不少项目,可是之前对它的认识也仅仅逗留在一些从其他处所听到的观念和官方文档的documentation上在碰着一些问题时往往不知道其道理只能凭据耳食之闻的观念来领略。既然kafka可以或许成为这么多公司的选择必定有很不错的实现,昆山软件开发,昆山软件开发,所以照旧要翻阅代码一看毕竟,一来进修别人的代码二来可以或许对kafka有更深入的相识。当前版本是0.11.0。
情况搭建
git clone https://github.com/apache/kafka cd kafka ./gradlew idea
然后用idea导入就可以了。
打开后可以看到许多module,不外server的实现是在core模块里,这也是需要着重相识的处所。
debug
研究工程代码照旧从debug开始较量好,kafka很友好的最外层放了一个Kafka.scala文件,main要领就在内里,不外在开始之前需要给main设置debug configuration。
把server.properties的路经加到program arguments,以及在enviroment里添加一个log4j.properties设置,这里我是从test里copy了一个到score/src/resources目次下,成立了resources目次。
cd到bin目次, 建设一个zookeeper server
./zookeeper-server-start.sh ../config/zookeeper.properties
然后就可以愉快的打断点debug了。
在启动进程完成后,可以用bin里的producer、consumer example来触发出产消费的逻辑。
目次先容
clients模块是用于Java应用的出产者、消费者的客户端代码
core模块是kafka server也就是kafka cluster的代码
core module里分了一些package,我们可以从它们的名字和内里的package.html(假如有的话)或许看出这个package的用途。
整体思路
整体思路上来讲,我们凭据处事端和客户端来别离讲。但愿读者不被绕晕
推荐的书/资源