Kafka 批量消费消息

改成批量消费消息有两个需要注意的地方:

1、配置文件修改

# 批量消费每次最多消费条目数
max-poll-records: 20
listener:
  # 关闭监听topic不存在的话项目启动报错
  missing-topics-fatal: false
  # 设置为批量消费
  type: batch

2、消费配置

1**
 * 测试批量消费消息
 * 就算是批量消费,这个地方也不一定就是批量获取到消息
 * @param msgList
 */
@KafkaListener(id="consumer1ForTopic01", groupId = "group01", topics = {"topic07"})
public void consumeTopic07(List<OrderMsg> msgList) {
    if (msgList != null) {
        System.out.println("consumer1ForTopic07-" + msgList.size());
        for (OrderMsg msg : msgList) {
            System.out.println(msg.toString());
        }
    }
}
Spring Boot与Kafka集成可以方便地处理应用程序向Kafka主题推送大量数据的情况。批量发送(Batching)是一种优化技术,用于减少网络通信次数和提高性能。以下是使用Spring Boot和Kafka进行批量消息发送的基本步骤: 1. **添加依赖**:首先,在Spring Boot项目的pom.xml文件中添加Spring Kafka的相关依赖。 ```xml <dependency> <groupId>org.springframework.kafka</groupId> <artifactId>spring-kafka</artifactId> </dependency> ``` 2. **配置应用**:在application.properties或application.yml中配置Kafka连接信息,如bootstrap servers、消费者组ID等。 ```properties spring.kafka.bootstrap-servers=localhost:9092 spring.kafka.consumer.group-id=my-consumer-group ``` 3. **创建生产者**:使用`KafkaTemplate`或`@KafkaListener`注解创建一个批处理的生产者。通常使用`sendAndFlush()`方法一次发送一批消息。 ```java @Autowired private KafkaTemplate<String, String> kafkaTemplate; public void sendMessage(List<String> messages) { for (String message : messages) { kafkaTemplate.send("my-topic", message); } // 如果需要批量发送,可以设置batchSize和lingerMs属性 kafkaTemplate.send("my-topic", new batchingProducerMessageCreator(messages)); } ``` 4. **自定义批量处理器**(可选):如果你想要定制发送策略,可以创建一个`MessageCreator`或`ProducerCallback`实现,比如`BatchingProducerMessageCreator`。 5. **异步发送**:通过`sendAsync()`方法可以异步发送消息,这在高并发场景下很有帮助。 6. **错误处理**:记得处理生产者发送失败的情况,并可以选择重试或者记录日志。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值