windows下kafka源码阅读环境搭建

本文介绍如何使用特定版本的软件(包括 JDK 1.8、Scala 2.11.11 和 Gradle 3.1 等)构建 Kafka 0.10 的开发环境,并解决在搭建过程中遇到的问题,例如通过修改配置使用阿里云镜像加速依赖下载等。
  1. 工具准备:jdk1.8,scala-2.11.11,gradle-3.1,zookeeper-3.4.5,kafka-0.10.0.1-src.tgz, kafka_2.11-0.10.0.1.tgz

  2. 安装jdk

  3. 安装scala

  4. 搭建zookeeper

  5. kafka源码构建

    解压kafka-0.10.0.1-src.tgz,命令行进行kafka-0.10.0.1-src,执行gradle idea


    e7b90ed54a50810c84f71b7b03bc4dbc.png-wh_

注:

1)gradle idea,用国外的库构建的下载速度很慢,在进入项目里面,找到build.gradle文件的修改库为阿里镜像库

buildscript {

  repositories {

        maven{ url 'http://maven.aliyun.com/nexus/content/groups/public/'}

    }

  apply from: file('gradle/buildscript.gradle'), to: buildscript


  dependencies {

    // For Apache Rat plugin to ignore non-Git files

    classpath "org.ajoberstar:grgit:1.5.0"

    classpath 'com.github.ben-manes:gradle-versions-plugin:0.12.0'

    classpath 'org.scoverage:gradle-scoverage:2.0.1'

  }

}


allprojects {

  apply plugin: 'idea'

  apply plugin: 'eclipse'

  apply plugin: "jacoco"


  allprojects {

    repositories {

        maven{ url 'http://maven.aliyun.com/nexus/content/groups/public/'}

    }

}

2)执行gradle idea时,报错


* What went wrong:  

A problem occurred evaluating root project 'kafka-0.10.0.1-src'.  

> Failed to apply plugin [class 'org.gradle.api.plugins.scala.ScalaBasePlugin']  

   > No such property: useAnt for class: org.gradle.api.tasks.scala.ScalaCompileOptions  

  

* Try:  

Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.  

  

BUILD FAILED  


解决方法:打开kafka-0.10.0.1-src目录下build.gradle文件

添加如下行

[plain] view plain copy

ScalaCompileOptions.metaClass.daemonServer = true  

ScalaCompileOptions.metaClass.fork = true  

ScalaCompileOptions.metaClass.useAnt = false  

ScalaCompileOptions.metaClass.useCompileDaemon = false 


7.用intellij idea打开kafka-0.10.0.1-src

2e54b08ee3d7b2412c280f36f31cd0bd.png-wh_

8.复制log4j.properties文件放到core模块的src/main/scala路径下,这样才能正常的显示日志

2ed43d098b7cebdf2faa21876ad0dac4.png-wh_

9.增加scala-sdk

0c3b177e184622b505534f8879c596fc.png-wh_

10.配置启动参数

12e18887649e11e1f9db69d044850dc6.png-wh_

11.启动项目

ce3716f9bb285fd7a644b66b2441c228.png-wh_

12.验证

解压kafka_2.11-0.10.0.1.tgz文件,命令行进入bin/windows

1)创建topic

C:\webserver\kafka_2.11-0.10.0.1\bin\windows>kafka-topics.bat --create --zookeeper localhost:2181 --replication-factor 1 --

partitions 1 --topic testMsg

Created topic "testMsg".


控制台日志如下:

38fb278207d888d2f482d0fced205b5d.png-wh_

2)执行生产者命令,产生消息:

d95d2efbc0fb9428444026348165dd22.png-wh_

3)执行消费者命令,消费消息:

c81d90a057bfd0c7c3221db7726f6f21.png-wh_

问题:

ERROR Processor got uncaught exception. (kafka.network.Processor)
java.nio.BufferUnderflowException

解决方案:

这是客户端的jar包和集群的版本号在小版本不一致导致,保持版本号一致即可。

scala-2.11.11,kafka-0.10.0.1-src.tgz, kafka_2.11-0.10.0.1.tgz



本文转自gauyanm 51CTO博客,原文链接:http://blog.51cto.com/gauyanm/1979198,如需转载请自行联系原作者
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值