当前位置: 首页 > 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是不是没关使用幂等,开发说不记得了,我服了!

相关文章:

  • web基础:域名、网页、HTML、web版本
  • 城市轨道交通网络客流大数据可视化分析系统----以某市交通网络客流数据为例
  • python select interpreter vscode 配置
  • 【RabbitMQ】消息堆积、推拉模式
  • 手机通过安装视频采集APP软件,采用国标28181方式注册到AS-V1000视频监控平台来播放实时监控视频画面
  • 甘蔗茎节检测系统源码分享
  • Spring Boot,在应用程序启动后执行某些 SQL 语句
  • vue初学随笔
  • web群集--rocky9.2部署zabbix服务端的详细过程
  • 【JavaEE】——线程的安全问题和解决方式
  • Vue3使用hiprint——批次打印条码
  • 【初阶数据结构】详解二叉树 - 树和二叉树(三)(递归的魅力时刻)
  • LeetCode(Python)-贪心算法
  • css五种定位总结
  • 什么是共享旅游卡?解析共享旅游创业项目认知与代理攻略
  • 【跃迁之路】【641天】程序员高效学习方法论探索系列(实验阶段398-2018.11.14)...
  • 78. Subsets
  • android百种动画侧滑库、步骤视图、TextView效果、社交、搜房、K线图等源码
  • CEF与代理
  • echarts的各种常用效果展示
  • electron原来这么简单----打包你的react、VUE桌面应用程序
  • Go 语言编译器的 //go: 详解
  • input的行数自动增减
  • js操作时间(持续更新)
  • js正则,这点儿就够用了
  • Meteor的表单提交:Form
  • Mocha测试初探
  • Python学习之路13-记分
  • RxJS 实现摩斯密码(Morse) 【内附脑图】
  • Swift 中的尾递归和蹦床
  • 记录一下第一次使用npm
  • 讲清楚之javascript作用域
  • 面试遇到的一些题
  • 七牛云假注销小指南
  • 区块链分支循环
  • 驱动程序原理
  • 推荐一款sublime text 3 支持JSX和es201x 代码格式化的插件
  • 微信支付JSAPI,实测!终极方案
  • 用jQuery怎么做到前后端分离
  • 原创:新手布局福音!微信小程序使用flex的一些基础样式属性(一)
  • 最简单的无缝轮播
  • Java性能优化之JVM GC(垃圾回收机制)
  • LIGO、Virgo第三轮探测告捷,同时探测到一对黑洞合并产生的引力波事件 ...
  • ​​​​​​​​​​​​​​汽车网络信息安全分析方法论
  • #Datawhale X 李宏毅苹果书 AI夏令营#3.13.2局部极小值与鞍点批量和动量
  • #Linux(Source Insight安装及工程建立)
  • #免费 苹果M系芯片Macbook电脑MacOS使用Bash脚本写入(读写)NTFS硬盘教程
  • (2021|NIPS,扩散,无条件分数估计,条件分数估计)无分类器引导扩散
  • (floyd+补集) poj 3275
  • (vue)el-checkbox 实现展示区分 label 和 value(展示值与选中获取值需不同)
  • (免费领源码)Java#ssm#MySQL 创意商城03663-计算机毕业设计项目选题推荐
  • (十三)MipMap
  • (一)Kafka 安全之使用 SASL 进行身份验证 —— JAAS 配置、SASL 配置
  • (转)mysql使用Navicat 导出和导入数据库
  • (转)创业家杂志:UCWEB天使第一步