KafKa手动提交问题描述

KafKa手动提交offset问题描述

在分布式架构,我在XXJOB来进行调用接口产生数据,将数据提交KafKa进行存储;然后将KafKa中数据拿出来消费,在处理KafKa出来的数据时,调用另外一个服务时,正好另外一个服务挂了,导致手动提交offset失败,造成数据的重复消费;

java 复制代码
@KafkaListener(topics = "xxx",groupId = "consumer01")
    public void listen(ConsumerRecord record, @Header(KafkaHeaders.RECEIVED_TOPIC) String topic, Acknowledgment ack) {
   		/**
   			代码块(其中有调用别的服务接口)
   		**/
   		// 手动提交offset
        ack.acknowledge();
    }

问题解决

解决方案就是将可能有问题的代码使用try...catch进行捕获异常,然后在finally进行手动提交offset

java 复制代码
@KafkaListener(topics = "xxx",groupId = "consumer01")
    public void listen(ConsumerRecord record, @Header(KafkaHeaders.RECEIVED_TOPIC) String topic, Acknowledgment ack) {
    	try{
	    	/**
	   			代码块(其中有调用别的服务接口)
	   		**/
    	}catch(Exception e){
    		
    	}finally{
    		// 手动提交offset
        	ack.acknowledge();
    	}
   		
   		
    }

解决方案仅供参考,不喜勿喷。

相关推荐
零域码客1 小时前
从 SQLite 到 PostgreSQL:轻量单机到分布式架构选型、避坑与迁移全解析
分布式·postgresql·sqlite·wal·架构设计·后端开发·数据库选型
淡海水2 小时前
01-05-运行时-JIT优化全景-内联去虚拟化边界检查消除
windows·c#·虚拟化·jit·内联·边界检查消除
ltl10 小时前
2PC 的真实失败模式:阻塞、脑裂与恢复
分布式
波波00710 小时前
C# 15 重磅新特性: 带标签 break 与 continue:重新定义嵌套循环控制流
服务器·前端·c#
霸道流氓气质12 小时前
分布式系统设计:技术解析与实践
分布式
wujian831114 小时前
怎么用千问生成word文档:从「格式崩」到「一键过」,AI导出鸭打通最后半厘米
人工智能·ai·c#·word·豆包·deepseek·ai导出鸭
zlinear数据采集卡15 小时前
D223上位机C#开发实战:从帧解析到波形显示的完整实现
开发语言·arm开发·嵌入式硬件·fpga开发·开源·c#
ACP广源盛1392462567315 小时前
蚂蚁百灵 Ling‑3.0‑flash 开源 + 昇腾 0‑Day 原生适配@ACP#GSV9001E 在国产算力矩阵中的机会与落地场景
大数据·人工智能·分布式·单片机·嵌入式硬件
唐青枫16 小时前
别把 ImmutableArray 当成只读 List:C#.NET 不可变数组深入详解
c#·.net