kafka源码阅读【2-源码环境搭建】

5 篇文章 1 订阅
5 篇文章 1 订阅

1、前言

在开始阅读kafka源码之前,源码测试环境很重要,搭建kafka开发环境对于阅读kafka源码至关重要,本篇文章不会很长,主要是简单介绍一下kafka源码环境的搭建以及使用。

2、源码获取

kafka获取源码的方式主要有两种:
1、官网下载(非git托管)
2、github下载
这两种源码都是同步的,如果需要进行版本管理的话可以下载GitHub版本

2.1、官网下载

在这里插入图片描述

2.2、Github下载

github的下载可能会比较慢,这里推荐两种方法:
方法一:通过【Download Zip】的方式使用迅雷下载
方法二:通过【码云】拉取github项目,再从码云下载
在这里插入图片描述
选择【导入已有仓库】
在这里插入图片描述
填写github上面的kafka地址
在这里插入图片描述
通过码云下载可能需要注意一下,码云可能为了快速拉取会从别人已经存在的项目导入,这样会导致当前拉取到的代码和最新版本代码不一致的情况

3、Gradle安装

下载地址
解压文件到指定目录
在这里插入图片描述
配置环境变量
在这里插入图片描述
验证是否安装成功
在这里插入图片描述

4、Scala安装

官网地址
windows建议选择msi方式安装,这样就不需要自己配置环境变量了
在这里插入图片描述
配置环境变量
在这里插入图片描述
验证是否安装成功
在这里插入图片描述

5、项目运行

5.1、安装Scala插件

使用IDEA导入项目,首先IDEA安装Scala插件
在这里插入图片描述

5.2、修改scala版本

导入项目到idea后,修改scala版本为当前已经安装的scala版本
在这里插入图片描述

5.3、导入项目

导入项目后为了加快编译速度,建议修改镜像源为国内镜像
在这里插入图片描述
在这里插入图片描述
配置如下:

    repositories {
        maven { url 'http://maven.aliyun.com/nexus/content/groups/public/' }
        maven { url 'http://maven.aliyun.com/nexus/content/repositories/jcenter' }
        maven {
            url "https://plugins.gradle.org/m2/"
        }
    }

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

5.3、编译项目

首先运行将项目导入idea

gradle idea

在这里插入图片描述
然后执行

gradle jar

进行打包编译
在这里插入图片描述
如果需要打包成release包可以使用一下指令

gradle clean releaseTarGz

执行成功后在core->build->distributions底下会有一个压缩包,这个包就是解压即可运行的
在这里插入图片描述

5.4、本地运行

如果编译完成后想本地运行,可以通过kafka.Kafka里面的main()方法直接运行
在这里插入图片描述
运行先需要将config某块底下的log4j.properties复制到kafka.Kafka同目录下,或者在core->main底下创建resources目录这样可以保证日志正常输出。其次指定运行的server.properties在这里插入图片描述
在这里插入图片描述

6、运行调试

前面介绍项目本地运行的情况,通过本地运行可以直接直接断点,但是当需要搭建分布式环境调试的情况下不满足了,这样就需要使用JVM的远程断点,kafka源码中本身是有设置远程断点的JVM参数(在kafka-run-class.sh中),但是默认是不开启的:
在这里插入图片描述
需要开启只需要设置$KAFKA_DEBUG为true即可

KAFKA_DEBUG=true #开启断点
# Set Debug options if enabled
if [ "x$KAFKA_DEBUG" != "x" ]; then

    # Use default ports
    DEFAULT_JAVA_DEBUG_PORT="5005"

    if [ -z "$JAVA_DEBUG_PORT" ]; then
        JAVA_DEBUG_PORT="$DEFAULT_JAVA_DEBUG_PORT"
    fi

    # Use the defaults if JAVA_DEBUG_OPTS was not set
    DEFAULT_JAVA_DEBUG_OPTS="-agentlib:jdwp=transport=dt_socket,server=y,suspend=${DEBUG_SUSPEND_FLAG:-n},address=$JAVA_DEBUG_PORT"
    if [ -z "$JAVA_DEBUG_OPTS" ]; then
        JAVA_DEBUG_OPTS="$DEFAULT_JAVA_DEBUG_OPTS"
    fi

    echo "Enabling Java debug options: $JAVA_DEBUG_OPTS"
    KAFKA_OPTS="$JAVA_DEBUG_OPTS $KAFKA_OPTS"
fi

在这里插入图片描述
当输出这句话的时候远程Debug模式开启成功,这时候只需要设置idea就能接入断点了
在这里插入图片描述

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值