spring 整合kafka实现 BatchAcknowledgingMessageListener 批量接收数据

本文介绍了如何在Spring中利用BatchAcknowledgingMessageListener接口实现Kafka消息的批量接收,以应对高吞吐量、高并发场景。升级Kafka到1.1.0后,调整配置文件,不再自动提交接收,并实现监听类。通过重载onMessage()方法,每次批量接收约500条数据,有效减少线程数,提高处理效率。
摘要由CSDN通过智能技术生成

之前参考别的文章实现了spring整合kafka接收单条数据处理,由于高吞吐量,高并发的需要,需要批量取kafka数据,并批量存储。在网上搜索的资料,发现资料比较少,本人在原来单条数据处理的基础上用BatchAcknowledgingMessageListener接口实现了批量接收kafka数据的功能。

前言:环境配置说明,由于spring托管的方式不支持低版本的kafka数据的批量接收,所以在升级kafka为1.1.0时再做批量接收处理。

兼容性参考下图:

1.环境配置:

名称 版本号
spring-framework
4.2.3.RELEASE
kafka_2.11
  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,关于 spring boot 整合 Kafka,我为您提供以下实现方式: 1.添加 Maven 依赖 在 pom.xml 文件中添加 Kafka 的相关依赖包: ``` <dependency> <groupId>org.springframework.kafka</groupId> <artifactId>spring-kafka</artifactId> <version>2.2.7.RELEASE</version> </dependency> ``` 2.配置 Kafka 生产者和消费者 在 application.properties 文件中配置 Kafka 生产者和消费者的相关参数: ``` # Kafka 生产者参数 spring.kafka.producer.bootstrap-servers=localhost:9092 spring.kafka.producer.key-serializer=org.apache.kafka.common.serialization.StringSerializer spring.kafka.producer.value-serializer=org.apache.kafka.common.serialization.StringSerializer # Kafka 消费者参数 spring.kafka.consumer.bootstrap-servers=localhost:9092 spring.kafka.consumer.group-id=test-consumer-group spring.kafka.consumer.auto-offset-reset=earliest spring.kafka.consumer.key-deserializer=org.apache.kafka.common.serialization.StringDeserializer spring.kafka.consumer.value-deserializer=org.apache.kafka.common.serialization.StringDeserializer ``` 3.配置 Kafka 消息监听器 创建 Kafka 消息监听器,用于监听和处理 Kafka 消息: ``` @Component public class KafkaConsumer { @KafkaListener(topics = "test_topic") public void listen(ConsumerRecord<?, ?> record) { System.out.println("topic:" + record.topic() + ",partition:" + record.partition() + ",offset:" + record.offset() + ",key:" + record.key() + ",value:" + record.value()); } } ``` 4.编写 Kafka 生产者发送消息 编写 Kafka 生产者代码,用于向 Kafka 队列中发送消息: ``` @Autowired private KafkaTemplate kafkaTemplate; public void sendMessage(String topic, String message) { kafkaTemplate.send(topic, message); } ``` 以上就是一个简单的 Spring Boot 整合 Kafka实现方式,希望对您有所帮助。如有不足之处,请多多指教。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值