于kafka核心道理的资料,网上有很多,但是如果不本身研究其源码,永远是知其然而不知所以然。下面就来演示如安在windows环境下来编译kafka源码,并通过IntelliJ IDEA开发工具搭建kafka的源码环境,以便利在本地通过debug调试来研究kafka的内部实现机制。
具体法式:
(1)安置jdk,版本为1.8.0_131,配置JAVA_HOME:
(2)安置scala,版本为 2.10.6,配置SCALA_HOME:
(3)安置Gradle,版本为 3.1,配置GRADLE_HOME:
(4)安置Maven,版本为 3.2.1,配置MAVEN_HOME:
(5)安置zookeeper,版本为3.4.6
到zookeeper官网下载压缩包,解压到windows的任意磁盘目录下,将conf目录下的zoo_sample.cfg复制一份,将其名称改削为zoo.cfg,然后打开,指定dataDir=D:\\java\\zookeeper-data\\3.4.6-data,好比我的配置如下:
# The number of milliseconds of each tick tickTime=2000 # The number of ticks that the initial # synchronization phase can take initLimit=10 # The number of ticks that can pass between # sending a request and getting an acknowledgement syncLimit=5 # the directory where the snapshot is stored. # do not use /tmp for storage, /tmp here is just # example sakes. dataDir=D:\\java\\zookeeper-data\\3.4.6-data # the port at which the clients will connect clientPort=2181 # the maximum number of client connections. # increase this if you need to handle more clients #maxClientCnxns=60 # # Be sure to read the maintenance section of the # administrator guide before turning on autopurge. # # #sc_maintenance # # The number of snapshots to retain in dataDir #autopurge.snapRetainCount=3 # Purge task interval in hours # Set to "0" to disable auto purge feature #autopurge.purgeInterval=1
然后双击bin目录下的zkServer.cmd即可启动zookeeper:
zookeeper启动后如下图,默认占用的端标语为2181:
(6)下载kafka源码。从kafka官网下载源码包kafka-0.10.0.1-src.tgz,解压,好比我解压到了D:\kafka-0.10.0.1-src目录下,在解压后的目录下面通过命令行窗口执行gradle idea命令,然后颠末漫长的期待,,控制台会呈现构建告成的提示,说明kafka源码编译完成;
(7)开发工具使用的是IntellJ IDEA 14.1.7(也可以使用其他更高的版本):
(8)在IntelliJ IDEA中安置scala插件,这里我安置的插件版本为 1.5.4:
(9)将编译好的kafka源码导入到idea开发工具中,导入后的目录情况:
(10)将config目录下的log4j.properties文件拷贝到core\src\main\scala\目录下,便利检察日志:
(11) 改削server.properties文件中的log.dirs=D:\\tmp\\kafka-logs(改削为你本身windows磁盘目录)
(12)启动kafka处事器,即运行core\src\main\scala\kafka\Kafka.scala中的main要领,运行前指定启动参数:
(13)启动出产者,启动参数配置:
(14)启动消费者,启动参数配置:
(15)在出产者的控制台上输入动静"hello kafka"并回车:
不雅察看消费者的控制台上,如果有动静被消费,说明源码环境搭建告成:
致此,kafka在IntelliJ IDEA中的源码环境搭建告成。
windows下IntelliJ IDEA搭建kafka源码环境