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();
    	}
   		
   		
    }

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

相关推荐
rockey6276 小时前
AScript函数体系详解
c#·.net·script·eval·expression·function·动态脚本
孟意昶11 小时前
Doris专题31-SQL手册-基础元素
大数据·数据库·数据仓库·分布式·sql·知识图谱·doris
2603_9547083113 小时前
交直流混合微电网架构:拓扑优化与功率交互设计
人工智能·分布式·物联网·架构·系统架构·能源
吴可可12314 小时前
C#合并首尾相连多段线实战
算法·c#
juniperhan15 小时前
Flink 系列第12篇:Flink 维表关联详解
大数据·数据仓库·分布式·flink
钮钴禄·爱因斯晨15 小时前
聚焦操作系统中的PV操作
数据库·算法·系统架构·c#
willhuo16 小时前
# 自动化数据采集技术研究与实现:基于Playwright的抖音网页自动化方案
运维·selenium·c#·自动化·chrome devtools·webview
xiaoshuaishuai817 小时前
C# 实现不掉线的CRM
开发语言·c#
Evand J17 小时前
【雷达跟踪代码介绍】基于matlab卡尔曼滤波器雷达多目标跟踪(双雷达 多目标 分布式融合)
分布式·matlab·目标跟踪·多目标跟踪·雷达跟踪
indexsunny17 小时前
互联网大厂Java面试实录:微服务+Spring Boot在电商场景中的应用
java·spring boot·redis·微服务·eureka·kafka·spring security