首页 > 解决方案 > SpringBoot 批量监听模式 vs 非批量监听模式

问题描述

我只是好奇 Spring Kafka 中的批处理侦听器模式是否比非批处理侦听器模式提供更好的性能?如果我们正在处理异常,那么我们仍然需要在 Batch-listener 模式下处理每条记录。非批处理似乎不太容易出错,稳定且可定制。

请分享您对此的看法,因为我没有找到任何好的比较。

标签: apache-kafkaspring-kafka

解决方案


这完全取决于您的听众对数据的处理方式。

如果它在循环中处理每条记录,那么没有任何好处;您不妨让容器遍历集合并一次向侦听器发送一条记录。

如果您将批处理作为一个整体进行处理,批处理模式将提高性能 - 例如,在单个事务中使用 JDBC 进行批处理插入。

这通常比一次存储一条记录(为每条记录使用一个新事务)运行得快得多,因为它需要更少的到数据库服务器的往返行程。


推荐阅读