我什么时候应该使用批量消费者与单一记录消费者

When should i use batch consumer vs single record consumer

据我所知,Apache Kafka 文档中没有诸如批处理消费者之类的特殊概念,但 spring-kafka 可以选择使用以下代码片段创建批处理消费者。

@Bean
public KafkaListenerContainerFactory<?> batchFactory() {
    ConcurrentKafkaListenerContainerFactory<Integer, String> factory =
            new ConcurrentKafkaListenerContainerFactory<>();
    factory.setConsumerFactory(consumerFactory());
    factory.setBatchListener(true);  // <<<<<<<<<<<<<<<<<<<<<<<<<
    return factory;
}

现在我的问题是,

我什么时候应该使用批量消费者与单一记录消费者?有人可以分享一些用例来解释单记录消费者与批量消费者的用法

根据以下线程,单个记录消费者与批量消费者之间的主要区别在于从轮询列表中向侦听器处理了多少记录。

使用批处理侦听器的一个示例可能是,如果您想在一个 SQL 语句中将数据从多个记录发送到数据库(这可能比发送它们 one-at-a-time 更有效) .

另一种情况是如果你正在使用交易;同样,使用一个事务进行多个 SQL 更新可能更有效。

一般是性能方面的考虑;如果这不是问题,那么更简单的 one-at-a-time 处理可能更合适。