Kafka 源码剖析(一)

1.基础概述

  在对Kafka使用层面掌握后,进一步提升分析其源码是极有必要的。纵观Kafka源码工程结构,不算太复杂,代码量也不算大。分析研究其实现细节难度不算太大。今天笔者给大家分析的是其核心处理模块,core模块。

https://www.mail-archive.com/dev@kafka.apache.org/

如果提交代码 看这里的规范

http://kafka.apache.org/contributing.html

2.内容

  首先,我们需要对Kafka的工程结构有一个整体的认知度,Kafka 大家最为熟悉的就是其消费者与生产者。然其,底层的存储机制,选举机制,备份机制等实现细节,需要我们对其源码仔细阅读学习,思考与分析其设计之初的初衷。下面,我们首先来看看Kafka源码工程模块分布, Github 上的 Kafka 源码版本为:0.11.0,其工程分布结构如下图所示:

WechatIMG42.jpeg

WechatIMG46.jpeg

WechatIMG47.jpeg

3.源码环境

  阅读Kafka源码需要准备以下环境:

  • JDK
  • IDE(Eclipse,IDEA或者其他)
  • gradle

      关于环境的搭建,大家可以利用搜索引擎去完成,比较基础,这里就不多赘述了。然后在源码工程目录下执行以下命令:

  • gradle idea(编辑器为IDEA)

  • gradle eclipse(编辑器为Eclipse)

      如何选择,可按照自己所使用的编辑器即可。这里笔者所使用的是IDEA,执行命令后,会在源码目录生成以下文件,如下图所示:
    WechatIMG43.jpeg

4.运行源码

  这里,我们先在config模块下设置server.properties文件,按照自己的需要设置,比如分区数,log的存储路径,zookeeper的地址设置等等。然后,我们在编辑器中的运行中设置相关的启动参数,如下图所示:

WechatIMG44.jpeg

WechatIMG45.jpeg

如图bug 在配置里添加如下代码

vm option:
-Xms512M -Xmx1024M -Xss1M -XX:+CMSClassUnloadingEnabled -Dlog4j.configuration=file:/Users/sunzhenya/Work/spark/souceCode/kafka/core/src/main/resources/log4j.properties -Dkafka.logs.dir=/Users/sunzhenya/Work/spark/kafka/logs
 -Dlog4j.debug=config/log4j.properties

program arguments:
config/server.properties

启动步骤 先启动如下代码

bin/zookeeper-server-start.sh config/zookeeper.properties 

5 运行结果

image.png

6 总结

本地启动运行代码 下篇分析 server-start 启动方式

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值