kafka踩坑记录

11 篇文章 0 订阅

持续更新

前言

工作需要学习kafka,说实话之前有使用过各种的mq,对于入门来说都是简简单单,很块就能上手。但是这次的kafka入门真的是太心累了,使用window安装还有看启动先使用springboot测试,结果就是抛出一堆问题,就想着用java简单写下cs通信,依然失败,比如broken始终无法创建成功(结果是自己zookeeper问题),然后找各种解决问题的相关博客,结果都是改端口,但是没有一个对上点,都是无效方案,什么改listen,port,奇怪的是有些博客都不写明自己的版本,然后就对问题给出相关的方案,但是不同版本,有些配置都不一样啊,唉。。。。。

入门新技术

通过这次的入门,我总结了一个以后入门新技术的通用避免踩坑的入门流程。

  1. 官方下载对应的jar,以及运行依赖的软件都要用telnet测试下是不是通信正常,首先要保证环境正常。

  2. 然后先使用软件自带的一些命令工具走一遍,比如kafka自带的一些bat,当然linux是sh文件,完成一个基本的主题创建,发布消息和消费的过程。相比较集成到java或者其他语言开发中使用抛出异常,从软件本身抛出的异常,可以很块看出问题,这样走一遍可以避免软件本身一些很多的简单但是容易忽视的坑,比如一些配置。

  3. 然后使用java基本的或者其他语言的api进行一个简单dome,测试,可以避免一些语言层面会出现的一些坑。

  4. 然后在使用springboot或者其他的框架进行集成测试使用,这样提高很大的成功率。

问题记录

20200908

Error when sending message to topic XXX with key: null

对应的kafka版本是 kafka_2.11-1.0.0

源码位置
https://github.com/ishaveanyone/skill-pool/tree/master/kafka
https://github.com/ishaveanyone/springboot/tree/master/springboot-kafka

这次的问题发现是通过kafka 自带的提供者bat发送消息测试抛出的问题:

Error when sending message to topic XXX with key: null, value: 0 bytes with error: (org.apache.kafka.clients.producer.internals.ErrorLoggingCallback)
org.apache.kafka.common.errors.TimeoutException: Expiring 1 record(s) for test-xupp-0: 1532 ms has passed since batch creation plus linger time

乍一看好像发送超时,然后网上各种说是进行修改server.properties文件中的listeners 配置,但是压根没有用,最后自己通过修改配置文件中的 log.dirs 的文件路径分割符,from \ to / 竟然就可以了 (原来配置是log.dirs=H:\kafka 改成log.dirs=H:/kafka),真是爆炸。记录一波。。。。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值