生产者发送数据,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.mzph.cn/pingmian/36677.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

代码随想录第五十二天打卡

647. 回文子串 动态规划解决的经典题目&#xff0c;如果没接触过的话&#xff0c;别硬想 直接看题解。 代码随想录 class Solution { public:int countSubstrings(string s) {vector<vector<bool>>dp(s.size(),vector<bool>(s.size(),false));int res0;for …

使用VMware创建Ubuntu 24.04【一】

相关链接下载地址 VMware https://www.vmware.com/content/vmware/vmware-published-sites/cn/products/workstation-pro/workstation-pro-evaluation.html.html.html Ubuntu 24.04 LTS https://cn.ubuntu.com/download/desktop 虚拟机创建 1、打开VNware软件&#xff0c;点…

5.9k!一款清新好用的后台管理系统!【送源码】

今天给大家分享的开源项目是一个优雅清新后台管理系统——Soybean Admin。 简介 官方是这样介绍这个项目的&#xff1a; Soybean Admin 使用的是Vue3作为前端框架&#xff0c;TypeScript作为开发语言&#xff0c;同时还整合了NaiveUI组件库&#xff0c;使得系统具有高可用性和…

Vue 3 的 <script setup> 语法糖中的e

在 Vue 3 的 <script setup> 语法糖中&#xff0c;可以通过直接在模板的事件监听器中访问事件对象&#xff08;通常命名为 e 或 event&#xff09;来传递它到方法。 以下是一个简单的例子&#xff0c;展示了如何在 Vue 3 的 <script setup> 中获取到 mousemove 事…

Windows 环境下 MySQL Server 清空 Log 文件命令

MySQL Community Server for Windows 下载&#xff1a; MySQL :: Download MySQL Community Server 清空 Log 文件步骤命令&#xff08;MySQL Server 8.0 为例&#xff09;&#xff1a; 1.杀掉 MySQL Workbench 进程 2.删除路径文件 C:\ProgramData\MySQL\MySQL Server 8.0\Dat…

基于YOLOv5+pyqt5的口罩佩戴检测系统(PyQT页面+YOLOv5模型+数据集)

简介 在各种工作环境和公共场所,确保人们正确佩戴口罩对个人防护和公共卫生至关重要,尤其是在医疗设施、制造业车间和拥挤的公共交通中。为了满足这一需求,我们开发了一种基于YOLOv5目标检测模型的口罩佩戴检测系统。本项目不仅实现了高精度的口罩佩戴检测,还设计了一个可…

学习提示词工程

去年 11 月 8 日&#xff0c;新加坡政府科技局&#xff08;GovTech&#xff09;组织举办了首届 GPT-4 提示工程&#xff08;Prompt Engineering&#xff09;竞赛。数据科学家 Sheila Teo 最终夺冠&#xff0c;成为最终的提示女王&#xff08;Prompt Queen&#xff09;。之后&am…

Swagger2及常用校验注释说明

Api(value "后台用户管理") RestController RequestMapping("bossuser") public class BossUserController {ApiOperation(value "测试接口")PostMapping("test")public String testUser(Valid RequestBody TestUser user) {LOG.inf…

机器学习之集成学习

一&#xff1a;概念 顾名思义集成学习就是用多个其他的算法结合起来使用 对于“其他算法”有同类和同质的区别&#xff0c;同质指的是所用的算法都是同一类型的&#xff0c;比如决策树和神经网络&#xff0c;这种也叫基学习器。反之亦然&#xff0c;但一般使用的是同质的。 …

6种高效便捷的移动硬盘加密软件,总有一款适合你

想要给自己移动硬盘内的文件/文件夹加密来保护数据隐私&#xff0c;防止重要信息泄露&#xff1f;使用电脑文件夹加密工具可以轻松帮您解决&#xff01;面对市面上众多的加密工具&#xff0c;如何选择成为一大难题。本文将为您提供一份详细的挑选指南&#xff0c;帮助您选择最合…

Java程序员接单的十条“野路子”,分分钟收入20K!

Java程序员除了主业工作外&#xff0c;也要适当扩展兼职接单这条路。毕竟Java接单可以说是Java程序员进行技术变现的最佳方式之一。 因为Java程序员兼职接单的难度相对更低&#xff0c;单量也比较可观&#xff0c;最重要的是性价比也很顶&#xff0c;且听我一一道来&#xff1a…

2024年6月24日 (周一) 叶子游戏新闻

图吧工具箱: 全名图拉丁吧硬件检测工具箱,是开源、免费、绿色、纯净的硬件检测工具合集,专为图钉及所有DIY爱好者制作,包含常用硬件测试和检测工具,月工JS必备! 土豆录屏: 免费、无录制时长限制、无水印的录屏软件 高手在民间 粉丝玩家打造精美《黄金树幽影》巨大插画虽然不是专…

大数据------额外软件、插件及技术------Linux(完整知识点汇总)

Linxu 不同领域的主流操作系统 桌面操作系统 WindowsMAac OSLinux 服务器端操作系统 UNIX&#xff08;付费&#xff09;LinuxWindows Server&#xff08;付费&#xff09; 移动设备操作系统 Android&#xff08;基于Linux开源&#xff09;IOS&#xff08;不开源&#xff09; 嵌…

深入理解代理模式(Proxy Pattern)及其实际应用

引言 在软件开发中&#xff0c;有时候我们需要在不改变现有代码的情况下添加一些功能&#xff0c;比如延迟初始化、访问控制、日志记录等。代理模式&#xff08;Proxy Pattern&#xff09;通过代理对象控制对原对象的访问&#xff0c;为现有代码添加了额外的功能。本篇文章将详…

Three.js鼠标拖动设置骨骼姿态

实现 根据SkinnedMesh生成Mesh 作为射线检测的目标&#xff08;射线检测SkinnedMesh存在不足 无法应用骨骼形变的顶点 &#xff09;点击模型 获取点击位置对应的骨骼拖拽鼠标设置骨骼旋转角度&#xff08;使用TransformControl选中点击的骨骼 设置轴为XYZE 并隐藏控件 主动触发…

PostgreSQL计算 queryid 原理

数据库版本 PG 16.1 queryid 是什么 queryid 是将 sql 规范化 (normalization) 后&#xff0c;通过哈希函数计算出来的 64 位整数。 以 SELECT id, data FROM tbl_a WHERE id < 300 ORDER BY data; 这条 SQL 为例。当我们在 PG 中执行这条 sql 时&#xff0c;内核在语义…

图论解法:哈密顿通路问题 Leetcode 2741. 特别的排列

描述 给你一个下标从 0 开始的整数数组 nums &#xff0c;它包含 n 个 互不相同 的正整数。如果 nums 的一个排列满足以下条件&#xff0c;我们称它是一个特别的排列&#xff1a; 对于 0 < i < n - 1 的下标 i &#xff0c;要么 nums[i] % nums[i1] 0 &#xff0c;要么…

【STM32-DAP 仿真器】

STM32-DAP 仿真器 ■ STM32-DAP仿真器介绍■ STM32-DAP仿真特点■ STM32-DAP仿真器实物图■ STM32-DAP高速 DAP 仿真器实物图■ STM32-DAP高速无线调试器 实物图■ STM32-DAP高速无线调试器示意图■ STM32-DAP高速无线调试器接线图■ STM32-DAP高速无线调试器接收端示意图 ■ S…

vcruntime140_1.dll是什么东东?vcruntime140_1.dll缺失的8个解决方法

当电脑出现找不到vcruntime140_1.dll,或vcruntime140_1.dll丢失无法打开软件怎么办&#xff1f;小编今天在本文详细为大家介绍解决方法与介绍vcruntime140_1.dll究竟是什么等vcruntime140_1.dll的问题。 一、vcruntime140_1.dll文件是什么 文件概述定义与功能 vcruntime140_…

【图像增强】基于retinex实现图像增强,SSR,MSR.MSRCR,MSRCP附Matlab代码

以下是基于Retinex算法实现图像增强的几种常见方法&#xff08;SSR、MSR、MSRCR、MSRCP&#xff09;的示例Matlab代码&#xff1a; SSR&#xff08;Single-Scale Retinex&#xff09;&#xff1a; matlab function enhanced_image SSR(image, sigma) log_image log(double(…