Apache Kafka 流 API 或 Producer/Consumer APIs

Apache Kafka Streams API or Producer/Consumer APIs

希望这不是一个太短视的问题,但我一直在努力理解 Apache Kafka 的工作原理。我一直在尝试创建一个流媒体服务,它将采用 POST 方法提供的简单 pojo,根据该 pojo 的时间戳触发时间 window,并提供一个 pojo 列表POST 在该 window 时间范围内进入流媒体服务。

我已经学习了几个不同的教程,并且我已经有了一个流媒体服务,它有一个自定义的消费者和生产者工厂和配置,并使用 Spring 注释来收听到话题。因此,我可以仅使用消费者和生产者 API 发送和接收带有序列化的 pojo。

我遇到问题的地方是实施 windowed 时间和存储 windowed 记录的方法。我不确定是只使用 Streams API、Consumer/Producer API 还是一起使用它们。我正在尝试将此作为 Spring 启动应用程序。这是我第一次处理这样的事情,任何类型的指导或见解将不胜感激。

谢谢。

Kafka Producer and Consumer 用于从 broker 推送和拉取数据,这使其像消息服务一样工作。如果你打算使用标准的 Kafka 生产者和消费者,你可能需要自己实现流逻辑。

但是,借助 Kafka Streams,除了消息服务功能,Kafka 还可以为您处理流逻辑,以便您可以专注于您的业务逻辑。

所以,我建议使用 Kafka Streams。您还可以查看支持 windows 和流处理功能(例如 Esper 和 Siddhi)的 CEP(连续事件处理)引擎。