据我所知,Apache Kafka文档中没有特殊的概念,例如批处理使用者,但是spring-kafka可以选择使用以下代码片段创建批处理使用者。
@Bean
public KafkaListenerContainerFactory<?> batchFactory() {
ConcurrentKafkaListenerContainerFactory<Integer, String> factory =
new ConcurrentKafkaListenerContainerFactory<>();
factory.setConsumerFactory(consumerFactory());
factory.setBatchListener(true); // <<<<<<<<<<<<<<<<<<<<<<<<<
return factory;
}
现在我的问题是,
我应该何时使用批处理使用者与单记录使用者?有人可以分享几个用例来解释单记录使用者与批处理使用者的用法吗?
根据下面的主题,单个记录使用者与批处理使用者之间的主要区别是从轮询列表中向侦听器处理了多少条记录。
What's the basic difference between single record kafka consumer and kafka batch consumer?
答案 0 :(得分:1)
使用批处理侦听器的示例可能是,如果您想在一条SQL语句中将多个记录中的数据发送到数据库中(这可能比一次发送它们更有效)。
另一种情况是您是否正在使用事务;同样,将一个事务用于多个SQL更新可能会更有效。
通常,这是性能方面的考虑;如果不必担心,那么一次更简单的处理可能更合适。