Kafka Streams-Java版本依赖性

时间:2018-12-20 09:18:43

标签: apache-kafka-streams

我正在使用Java 1.6运行应用程序,并计划与Kafka集成一些方面。

我正在研究是否应该使用Kafka Consumer(使用poll())还是使用KafkaStreams API。我们需要Java 1.7 / 1.8来使用Stream API吗?

2 个答案:

答案 0 :(得分:0)

Kafka Consumer和Kafka Streams API都有各自的优势。两者均可用于从Kafka主题读取数据。这很大程度上取决于您要实现的用例。

Kafka Consumer是低级别的消费者客户端,您可以在其中编写消费者应用程序以阅读kafka主题并实现该功能。 而Kafka Streams更具表现力。它支持具有编程风格DSL的操作,您可以在其中读取kafka主题中的数据,执行操作并写回另一个kafka主题。

好吧,Kafka Stream API是建立在Kafka消费者和生产者客户端之上的。您应该考虑Streams API的一些值得注意的功能:

  1. 提供容错的无状态和有状态转换,即映射,联接,开窗和聚合。在kafka消费者客户端中,实现这些操作很繁琐。
  2. Streams API提供了具有许多可直接使用的功能的功能性编程风格DSL。同样对于复杂的处理,还有可以与DSL一起使用的低级处理器API。
  3. Streams API还支持交互式查询,以将结果公开为微服务。在Kafka消费者中,您将必须为此编写实现。
  4. Streams API可以从Kafka主题读取,进行处理并写回另一个kafka主题。当使用者读取数据时,您将不得不编写另一个Producer客户端以将数据发布到主题。

对于Java版本,建议使用Java 1.8,因为旧版本具有一些安全漏洞。但是您仍然可以在Java1.7版本上运行。

答案 1 :(得分:0)

我不认为Kafka正式支持Java 1.6,或者至少最后两个版本不支持Java 1.6。 This页显示了与不同Kafka版本的JDK兼容性,所需的最低版本为JDK 1.7