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

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

相关推荐
一念春风2 小时前
智能文字识别工具(AI)
开发语言·c#·wpf
故事不长丨3 小时前
WPF MvvmLight 超详细使用教程
c#·wpf·mvvm·mvvmlight
绿算技术4 小时前
OpenClaw × GP Spark:本地智能与极速存储的终极融合
大数据·分布式·spark
孤影过客5 小时前
驯服数据巨兽:Hadoop如何重塑大数据的黄金时代
大数据·hadoop·分布式
CSharp精选营7 小时前
值类型与引用类型:别再只背“栈和堆”了,看这 4 个实际影响
c#·.net·值类型·引用类型·栈和堆·编程指南
iPadiPhone8 小时前
分布式架构的“润滑剂”:RabbitMQ 核心原理与大厂面试避坑指南
分布式·后端·面试·架构·rabbitmq
qq_4542450310 小时前
GraphFoundation动态更新图
架构·c#·图论
愤豆11 小时前
07-Java语言核心-JVM原理-JVM对象模型详解
java·jvm·c#
张人玉11 小时前
上位机项目笔记
笔记·c#·上位机
小杍随笔13 小时前
【Rust Exercism 练习详解:Anagram + Space Age + Sublist(附完整代码与深度解读)】
开发语言·rust·c#