Spring 批处理和 Apache Kafka

Spring Batch and Apache Kafka

我在 Kafka.I 的学习阶段看到了这个视频 This Video

这让我很困惑。我能够理解 kafka 消费者和生产者,我可以看到很多与此相关的参考资料。我们已经有了批处理侦听器,所以为什么我们需要 spring 批处理支持。与使用普通批处理侦听器相比,使用 spring kafka 批处理有什么特别的优势吗?请帮助我理解,因为我看不到任何参考资料比较 both.What 我觉得我们使用普通消费者有更多的自由和定制,如果我错了 producer.Please 纠正我。

Spring Batch是一个批处理框架(固定数据集),而Kafka是一个流平台(无限数据流)。这些工具解决了两种不同类型的需求和用例。

但是,在很多情况下,您希望在这两个世界之间架起一座“桥梁”。这里有几个例子:

  • 重播事件流以创建特定时间的应用程序状态:在这里您可以使用 Spring 从头读取 Kafka 主题并重播所有事件的批处理作业(KafkaItemReader 在这里会有帮助)
  • 在实时流中从文件或数据库 table 注入一组事件。在这种情况下可以使用 KafkaItemWriter
  • 等等

使用 Spring 批处理作业优于常规批处理侦听器的优势在于 Spring Batch 在事务管理、可重启性状态管理、容错功能等方面提供的所有功能。