Apache Kafka Streams API或生产者/消费者API

时间:2018-06-29 21:22:05

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

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

我已经看过几个不同的教程,并且到了一个点,我有一个流服务,该流服务具有自定义的Consumer和Producer工厂和配置,并使用Spring注释来收听主题。因此,我可以仅使用Consumer和Producer API进行序列化发送和接收pojos。

我遇到麻烦的地方是实现加窗时间以及一种存储要提供的加窗记录的方法。我不确定是仅使用Streams API,消费者/生产者API还是将它们全部一起使用。我正在尝试作为SpringBoot应用程序来执行此操作。这是我第一次解决这样的问题,任何形式的指导或见解将不胜感激。

谢谢。

1 个答案:

答案 0 :(得分:0)

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

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

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