【问题标题】:Apache Kafka Streams API or Producer/Consumer APIsApache Kafka Streams API 或生产者/消费者 API
【发布时间】:2018-06-29 21:22:04
【问题描述】:

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

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

我遇到问题的地方是实现窗口时间和存储窗口记录以提供的方法。我不确定是只使用 Streams API、消费者/生产者 API,还是一起使用它们。我正在尝试将其作为 SpringBoot 应用程序来执行。这是我第一次处理这样的事情,任何形式的指导或见解都将不胜感激。

谢谢。

【问题讨论】:

  • 毫无疑问,使用 Kafka Streams。 KS 为您提供了一个简单的界面,用于构建您想要使用转换、连接、窗口操作执行的应用程序......不用担心消费者/生产者 api,KS 会为您完成。

标签: java spring-boot apache-kafka apache-kafka-streams


【解决方案1】:

Kafka 生产者和消费者用于从代理推送和拉取数据,这使其像消息传递服务一样工作。如果您要使用标准的 Kafka 生产者和消费者,您可能需要自己实现流式处理逻辑。

但是,通过 Kafka Streams 以及消息传递服务能力,Kafka 还可以为您处理流逻辑,以便您可以专注于业务逻辑。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-12-30
    • 2017-11-03
    • 2020-01-11
    • 2019-10-16
    • 2016-07-19
    • 2018-12-18
    • 1970-01-01
    相关资源
    最近更新 更多