Spring-Kafka —— 实现批量消费和手动提交offset
spring-kafka的官方文档介绍,可以知道自1.1版本之后,
@KafkaListener开始支持批量消费,只需要设置batchListener参数为true
把application.yml中的enable-auto-commit设置为false,设置为不自动提交
@Bean public KafkaListenerContainerFactory<?> batchFactory(ConsumerFactory consumerFactory){ ConcurrentKafkaListenerContainerFactory<Integer,String> factory = new ConcurrentKafkaListenerContainerFactory<>(); factory.setConsumerFactory(consumerFactory); factory.setConcurrency(10); factory.getContainerProperties().setPollTimeout(1500); factory.setBatchListener(true);//设置为批量消费,每个批次数量在Kafka配置参数中设置
factory.getContainerProperties().setAckMode(ContainerProperties.AckMode.MANUAL_IMMEDIATE);//设置手动提交ackMode
return factory;
}
//批量消息 @KafkaListener(topics = {"first_top"},containerFactory="batchFactory") public void consumerBatch(List<ConsumerRecord<?, ?>> records, Acknowledgment ack){ log.info("接收到消息数量:{}",record.size());
//手动提交
ack.acknowledge();
}
这里containerFactory = “batchFactory”要指定为批量消费
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
2018-11-20 SpringBoot日志logback-spring.xml分环境log4j logback slf4j区别 springboot日志设置
2013-11-20 将Maven2项目转为MyEclipse项目
2013-11-20 关于SVN 目录结构
2013-11-20 maven 教程一 入门
2013-11-20 Eclipse中安装Maven插件 M2eclipse
2012-11-20 PHP 的调试技术
2011-11-20 Silverlight陷阱:XAML中不能使用自定义字典 AG_E_PARSER_BAD_PROPERTY_VALUE