【发布时间】:2021-08-31 16:43:18
【问题描述】:
我只是好奇 Spring Kafka 中的批处理侦听器模式是否比非批处理侦听器模式提供更好的性能? 如果我们正在处理异常,那么我们仍然需要在 Batch-listener 模式下处理每条记录。非批处理似乎不太容易出错、稳定且可定制。
请分享您对此的看法,因为我没有找到任何好的比较。
【问题讨论】:
我只是好奇 Spring Kafka 中的批处理侦听器模式是否比非批处理侦听器模式提供更好的性能? 如果我们正在处理异常,那么我们仍然需要在 Batch-listener 模式下处理每条记录。非批处理似乎不太容易出错、稳定且可定制。
请分享您对此的看法,因为我没有找到任何好的比较。
【问题讨论】:
这完全取决于你的听众对数据做了什么。
如果它循环处理每条记录,则没有任何好处;您不妨让容器遍历集合并一次向侦听器发送一条记录。
如果您将批处理作为一个整体处理,批处理模式将提高性能 - 例如在单个事务中使用 JDBC 进行批量插入。
这通常比一次存储一条记录(为每条记录使用一个新事务)运行得快得多,因为它需要更少的往返数据库服务器。
【讨论】: