当前位置: 首页 > news >正文

阿里云kafka消息写入topic失败

1. 问题现象描述

20240918,14:22,测试反馈说kafka有问题,生产者写入消息的时候报错,并发了一张日志截图,主要报错如下:
to topic xxxx: org.apache.kafka.common.errors.TimeoutException: Expiring 1 record(s) for xxxx-0:120000 ms has passed since batch creation。

The cloud topic xxxx-0 dose not support idempotent and transaction, please use the local topic

第一条报错的大概意思是写入超时,也就是网络有问题。第二条报错是说topic不支持幂等和事务,请使用本地topic。

2. 排查过程

2.1 检查网络环境

这个kafka实例是用的阿里云的,服务和配置我都检查过,一个多月没改动了,但还是根据报错检查一下,我先自行在pod中telnet了一下kafka实例的地址,检查了白名单,随后又按照阿里云官方提供的检查方式,检查了网络、生产、消费等方面,都显示正常。

2.2 检查kafka topic存储类型

阿里云上的kafka,创建topic时,可选的存储是云存储和local存储,我这边所有的topic默认都是使用的云存储,但是根据云厂商的回复,客户端版本如果使用3.0及以上的话,是没有办法使用幂等的,就会导致消息发送失败,刚好我问了一下开发,说用的是3.7.1,但开发说已经关闭了幂等功能。
好吧,到这里排查不下去了,准备抓包。

2.3 测试写入其他topic

这里让开发改了一下代码,看看写入其他topic是否正常,测试结果没问题,写其他topic能写。

2.4 抓包

这里把版本回滚到了消息写入异常的这一版,pod中用tcpdump 抓和kafka通信的包,让开发手动触发消息写入,报文截图如下:
在这里插入图片描述
可以看到上面kafka客户端版本是3.7.0,我寻思这跟开发说的一不一样的,于是把版本发到能够正常写入消息的这一版,继续抓包,报文如下:
在这里插入图片描述
新发现,能写的这个客户端是3.7.1,随后反馈给开发。

3. 问题原因

最后跟开发沟通,是因为他在3.7.1这个客户端版本,关闭了使用幂等功能,所以消息能写了,其实不换客户端版本也没关系。
最后问开发老版本3.7.0是不是没关使用幂等,开发说不记得了,我服了!


http://www.mrgr.cn/news/30232.html

相关文章:

  • 【前端面试系列】JavaScript闭包
  • Java多线程详解⑦(全程干货!!!)内存可见性 || volatile || JMM || wait notify notifyAll
  • 数据重塑:长宽数据转换【基于tidyr】
  • Python中4个高效小技巧
  • Argument of type ‘any‘ is not assignable to parameter of type ‘never‘.
  • 小程序开发进阶之路-AI编程助手
  • jenkins 部署到tomcat
  • 2024最新的软件测试面试八股文(答案+文档)
  • Xmind软件自定义安装,如何安装在指定位置(不修改注册表),修改默认安装到c盘软件的安装位置
  • rpm 与 yum
  • JAVA客户端发送图片给服务端案例
  • JavaWeb笔记整理——Redis
  • 信息收集常用指令
  • 『功能项目』QFrameWorkBug修改器界面【65】
  • TimeSpan(一个简单的计时器)
  • 佰朔资本:pb和pe是什么?股票pb和pe怎么看?
  • apt-get install 安装的tomcat配置
  • 硬件资源从硬编码到设备树
  • 深入解析NVIDIA GH200:Grace Hopper的多样性与性能挑战
  • 基于SpringBoot+Vue的篮球馆会员信息管理系统
  • nodejs child_process 操作git 提交记录 提取git commit信息
  • Vue:加载本地视频
  • C++和OpenGL实现3D游戏编程【连载9】——纹理的镂空显示
  • 电子书号和纸质书号的ISBN 号有什么不同?
  • 《高等代数》行列式转置(应用)
  • 如何让零售巨头在营销拓客中旗开得胜?新增企业API自动输出客户名单!