kakfa源码调试

本文档详细介绍了如何进行Kafka源码的调试,包括环境准备、服务器启动步骤,以及解决在调试过程中遇到的错误问题。重点讨论了代理设置、源码编译、Gradle wrapper的使用、Kafka与Zookeeper的启动,以及针对特定错误的解决方案,如自动生成的消息格式类和SLF4J日志问题。

kakfa源码调试 -- v2.5

一,环境准备
  1. 下载最新源码https://www.apache.org/dyn/closer.cgi?path=/kafka/2.5.0/kafka-2.5.0-src.tgz
  2. 下载gradle, https://gradle.org/releases/
  3. 进入源码的根路径,使用gradle编译 输入命令:
    1. gradle idea 等待一段时间就可以看到编译成功
    2. gradle wrapper
    3. gitbash
      1. export http_proxy=http://127.0.0.1:1081 设置代理
      2. ./gradlew jar
  4. 编译通过
  5. 导入idea打开
  6. 把client generated/generated-test拷贝到对于client包下,移除src <== TODO 不专业
二,kafka服务器启动
  1. windows环境测试需要下载编译好的kafka_2.11-2.4.1.tgz

    1. 通过:bin/zookeeper-server-start.sh config/zookeeper.properties启动zookeeper
  2. kafka服务启动

    1. 主类:kafka.Kafka
    2. 程序参数: config/server.properties
  3. 通过windows的bat命令测试

    1. kafka-topics.bat --create --zookeeper localhost:2181 --replication-factor 1 --partitions 2 --topic test

    2. 查看zookeeper信息:bin/zookeeper-shell.sh localhost:2181

    3. kafka-console-producer.bat --broker-list localhost:9092 --topic test

    4. kafka-console-consumer.bat --bootstrap-server localhost:9092 --topic test

      1. 消费内部topic __consumer_offsets :
        1. kafka-console-consumer.bat --bootstrap-server localhost:9092 --topic __consumer_offsets --formatter "kafka.coordinator.group.GroupMetadataManager$OffsetsMessageFormatter" --consumer.config consumer_config.properties --from-beginning
        2. consumer.properties 添加exclude.internal.topics=false
    5. kafka-topics.bat --list --zookeeper localhost:2181

    6. 消费情况:
      kafka-consumer-groups.bat --new-consumer --bootstrap-server localhost:9092  --describe
      

出错问题
  • Error:(19, 39) java: 程序包org.apache.kafka.common.message不存在.
  • 执行.gradlew 报错 找不到 org.gradle.wrapper.GradleWrapperMain
  • kafka程序启动,SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
    • core.iml修改slf4j的scope,直接删除
  • log4j:WARN No appenders could be found for logger (kafka.utils.Log4jControllerRegistration$).
    • 从config中拷贝log4j.properties 到 ,core/src/scala中
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值