当前位置: 首页 > 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.lryc.cn/news/444233.html

相关文章:

  • 图像放大效果示例【JavaScript】
  • 【C#生态园】云端之C#:全面解析6种云服务提供商的SDK
  • 远程升级又双叒叕失败?背后原因竟然是。。。
  • 【测试】——Selenium API (万字详解)
  • Redis:原理+项目实战——Redis实战3(Redis缓存最佳实践(问题解析+高级实现))
  • 刚刚,Stable Diffusion 2024升级,最强Ai绘画整合包、部署教程(解压即用)
  • 【AIGC】ChatGPT提示词助力高效文献处理、公文撰写、会议纪要与视频总结
  • centos7更换国内下载源
  • 【Linux】常用指令【更详细,带实操】
  • 力扣3290.最高乘法得分
  • Python | Leetcode Python题解之第413题等差数列划分
  • 深入理解 ClickHouse 的性能调优与最佳实践
  • Elasticsearch——介绍、安装与初步使用
  • FreeRTOS保姆级教程(以STM32为例)—任务创建和任务控制API说明
  • Go语言现代web开发14 协程和管道
  • Llama3.1的部署与使用
  • Java/Spring项目的包开头为什么是com?
  • 深度学习自编码器 - 随机编码器和解码器篇
  • Spring IoC DI
  • [数据集][目标检测]无人机飞鸟检测数据集VOC+YOLO格式6647张2类别
  • Vue 中 watch 的使用方法及注意事项
  • 情指行一体化平台建设方案和必要性-———未来之窗行业应用跨平台架构
  • 窗口框架frame(HTML前端)
  • 51单片机——数码管
  • `re.compile(r“(<.*?>)“)` 如何有效地从给定字符串中提取出所有符合 `<...>` 格式的引用
  • 算法打卡:第十一章 图论part01
  • 为C#的PetaPoco组件增加一个批量更新功能(临时表模式)
  • Spring实战——入门讲解
  • MTK芯片机型的“工程固件” 红米note9 5G版资源预览 写入以及改写参数相关步骤解析
  • [Golang] Context