生产者发送数据,kafka服务器接收数据异常的问题记录

现象:
某个客户要求审计日志用kafka的方式传输给他们,使用了第三方的librdkafka库来开发。
往客户提供的kafka服务器上的一个topic发送数据,这个topic有三个分区,客户反馈接收到的数据和发送端发送的实际数量对不上,他们只有一个分区接收到了数据,其他两个分区没有接收到。

以下是客户提供的截图证据:
在这里插入图片描述

排查:
1
生产者用到是轮询的方式发送给客户的,但由于再和客户排查时用的是公司产品的抓包工具且抓包失败了导致并不清楚这一次的原因

2
而后客户将topic(DLP)改为单分区后,发送端的生产者再次发送数据,这一次是正常。

3
虽然开发了kafka生产者发送数据(客户端),但因为没有接触过kafka服务器,不了解工作原理,排查全靠google。最后没办法,要求客户恢复成3分区再排查看下,客户重新建一个新的topic(DLP3P)并且是3个分区的。

联调抓包发现一切正常。生产者发送了9条数据,客户接收端收到了9条数据,且三个分区各3条,符合轮询规则,顺序也吻合。
抓包结果如下:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
至此问题就没有再出现了,所以这里只是记录这个现象。从2023.3月出现该问题,在排查时新建了topic后无问题,抓包都正常,到现在2024.6.27客户都没在反馈过该问题

总结:
发送端的生产者是轮询的发送机制发送数据,客户的kafka服务器的某个topic有三个分区,客户反馈只有一个分区收到数据,其他分区没有,客户质疑是我们的轮询机制有问题。所以我要求客户重建了新的topic,也是三个分区,这个时候接收却正常了,三个分区都可接收数据也确实是按照轮询的方式接收到的。而此后1年多也未反馈过这个问题复现。

所以虽然不太了解kafka服务器的相关工作原理,我仍然觉得这更可能是一个服务端的bug,因为在其他多个(最少4个我知道的)现场使用kafka生产数据也是轮询机制,但其他客户没有反馈过这种问题。

问题虽解决了,但是很可惜未找到根本原因。重建了新的topic后问题就算是被解决了。如果有大佬恰好看到这里,可以留言指点下我,看看可能是什么原因导致的

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/751720.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Elasticsearch环境搭建|ES单机|ES单节点模式启动|ES集群搭建|ES集群环境搭建

文章目录 版本选择单机ES安装与配置创建非root用户导入安装包安装包解压配置JDK环境变量配置single-node配置JVM参数后台启动|启动日志查看启动成功,访问终端访问浏览器访问 Kibana安装修改配置后台启动|启动日志查看浏览器访问 ES三节点集群搭建停止es服务域名配置…

平板WPS转换的PDF文件保存位置解析

在日常工作和生活中,我们经常需要将文档转换成PDF格式进行分享,以确保接收者能够无障碍地查看文件内容,不受软件版本或操作系统的限制。WPS作为一款功能强大的办公软件,也提供了文档转换为PDF的功能。然而,有时在转换并…

HarmonyOS--数据持久化--关系型数据库

文档中心 关系型数据库 场景介绍 关系型数据库基于SQLite组件,适用于存储包含复杂关系数据的场景,比如一个班级的学生信息,需要包括姓名、学号、各科成绩等,又或者公司的雇员信息,需要包括姓名、工号、职位等&#…

hnust 1817 算法10-10,10-11:堆排序

hnust 1817 算法10-10,10-11:堆排序 题目描述 堆排序是一种利用堆结构进行排序的方法,它只需要一个记录大小的辅助空间,每个待排序的记录仅需要占用一个存储空间。 首先建立小根堆或大根堆,然后通过利用堆的性质即堆顶的元素是最…

Mac14.1.2 M1芯片免费读写ntfs硬盘-亲测有效,免费!!!

1. 安装homebrew 打开终端,使用以下命令 /bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)" 根据提示逐步完成即可,镜像选择我这里都是保持1的选项。 2. 重启终端 安装完成homebrew后,需…

Vite: 关于Rollup打包

概述 Rollup 是一款基于 ES Module 模块规范实现的 JavaScript 打包工具,在前端社区中赫赫有名,同时也在 Vite 的架构体系中发挥着重要作用不仅是 Vite 生产环境下的打包工具,其插件机制也被 Vite 所兼容,可以说是 Vite 的构建基…

单点登录(cookie+Redis)

1、什么是单点登录? Single Sign On简称SSo,只需要登录一次就可以在整个系统实现访问。 因为session的特性,是没有办法在多个服务系统之间实现数据的共享。 解决一个分布式session的问题。目前我们使用redis来实现分布式session。 1.1、新问题…

【数据结构】(C语言):队列

队列: 线性的集合。先进先出(FIFO,first in first out)。两个指针:头指针(指向第一个进入且第一个出去的元素),尾指针(指向最后一个进入且最后一个出去的元素&#xff0…

Redis优化之持久化

目录 1.Redis高可用 2.Redis持久化 2.1 RDB持久化 2.1.1 触发条件 2.1.2 执行流程 2.1.3 启动时加载 2.2 AOF持久化 2.2.1 开启AOF 2.2.2 执行流程 2.2.3 文件重写触发方式 2.2.4 文件重写的流程 2.2.5 启动时加载 2.3 RDB和AOF的优缺点 3.Redis性能管理 3.1 查看…

C++ 教程 - 07 类的静态成员

文章目录 静态成员 静态成员 使用static修饰的成员; 静态的成员变量; 仅保留一份副本,不管创建多少个实例对象,都共享这一份数据;类、对象均可以调用;类外重新声明,并通过类初始化;…

怎么在vite项目中全局导入一个scss文件

怎么在vite项目中全局导入一个scss文件 🎉🎉🎉欢迎来到我的博客,我是一名自学了2年半前端的大一学生,熟悉的技术是JavaScript与Vue.目前正在往全栈方向前进, 如果我的博客给您带来了帮助欢迎您关注我,我将会持续不断的更新文章!!!&#x1f64…

腾讯云CVM,CentOS8系统下部署Java-Web项目步骤详解

在CVM中部署项目首先要配置好JDK,Tomcat,Mysql(这里以Tomcat和Mysql为例)。部署JDK和Tomcat的步骤可以参考 CentOS7系统下部署tomcat,浏览器访问localhost:8080/_不积跬步,无以至千里;不积小流,无以成江河。-CSDN博客 我这里从Mysql的安装和设…

Java | Leetcode Java题解之第201题数字范围按位与

题目&#xff1a; 题解&#xff1a; class Solution {public int rangeBitwiseAnd(int m, int n) {while (m < n) {// 抹去最右边的 1n n & (n - 1);}return n;} }

C#——命名空间详情

命名空间 在 C# 中&#xff0c;可以将命名空间看作是一个范围&#xff0c;用来标注命名空间中成员的归属&#xff0c;一个命名空间中类与另一个命名空间中同名的类互不冲突&#xff0c;但在同一个命名空间中类的名称必须是唯一的。 定义命名空间 定义命名空间需要使用 namesp…

微软推出最新视觉基础模型Florence-2 可在浏览器运行

据微软官方消息&#xff0c;微软推出视觉基础模型Florence-2&#xff0c;该模型现已能够在支持WebGPU的浏览器中100%本地运行。Florence-2-base-ft是一个拥有2.3亿参数的视觉基础模型&#xff0c;采用基于提示的方法来处理广泛的视觉和视觉语言任务。 该模型支持多种功能&…

youlai-boot项目的学习(4) 前后端本地部署

环境 1、macOS, brew, IntelliJ IDEA, WebStrom 2、后端&#xff1a;https://gitee.com/youlaiorg/youlai-boot.git , master, 9a753a2e94985ed4cbbf214156ca035082e02723 3、前端&#xff1a;https://gitee.com/youlaiorg/vue3-element-admin.git, master, 66b913ef01dc880ad…

25届最近5年重庆邮电大学自动化考研院校分析

重庆邮电大学 目录 一、学校学院专业简介 二、考试科目指定教材 三、近5年考研分数情况 四、近5年招生录取情况 五、最新一年分数段图表 六、历年真题PDF 七、初试大纲复试大纲 八、学费&奖学金&就业方向 一、学校学院专业简介 二、考试科目指定教材 1、考试…

提取url中的参数

let url https://alibaba.com?a1&b2&c3#hash function queryUrlParams(URL){let url URL.split(?)[1];const urlSearchParams new URLSearchParams(url);console.log(url1, urlSearchParams);console.log(entries,urlSearchParams.entries())const params Object…

大模型推理知识总结

一、大模型推理概念 大多数流行的only-decode LLM&#xff08;例如 GPT-3&#xff09;都是针对因果建模目标进行预训练的&#xff0c;本质上是作为下一个词预测器。这些 LLM 将一系列tokens作为输入&#xff0c;并自回归生成后续tokens&#xff0c;直到满足停止条件&#xff0…

多表查询-子查询

前言 上一篇博客&#xff0c;我简单的讲述了联合查询。今天本篇博客我将详细的阐述子查询的四个方面如 标量子查询&#xff0c;列子查询&#xff0c;行子查询&#xff0c;表子查询。 正文 子查询的认识 子查询的认识 子查询&#xff1a;是SQL语句中&#xff0c;嵌套select …
最新文章