KafkaConsumer和KafkaStreams有什么区别吗?

时间:2018-02-05 10:43:04

标签: apache-kafka kafka-consumer-api apache-kafka-streams

我正在使用Apache Kafka 0.8.2.1,计划升级我的应用程序以使用Apache kafka 1.0.0。 当我检查Kafka Streams时,我对KafkaConsumer和KafkaStreams之间的区别提出了一些疑问。

基本上,KafkaConsumer必须使用轮询方法从经纪人处消费。我可以在轮询时指定一些持续时间,每当我得到ConsumerRecored时,我都可以处理它以产生一些有用的信息。 另一方面,KafkaStream不必指定任何轮询持续时间,只需调用start()方法。

我知道KafkaConsumer基本习惯consume从字面上看,来自经纪人和KafkaStreams可以做各种事情,如Map-Reduce或与数据库交互,甚至可以重新生成其他kafka或任何其他系统。

所以,有我的问题。 KafkaConsumer和KafkaStream之间有什么区别(换句话说,当谈到apache kafka库的级别时。)?

2 个答案:

答案 0 :(得分:2)

是的,Kafka Consumer和Kafka Streams之间存在差异。

Kafka Consumer可以在接收端用于接收数据和进程以供将来计算(基于主题和分区) Kafka Streams API可以将已发布的内容实时存储和分发到各种应用程序和系统中,以供读者使用。

答案 1 :(得分:1)

正如您所说,它们提供不同的功能:

  • KafkaStreams允许对记录执行复杂的处理
  • KafkaConsumer允许从Kafka群集接收记录

KafkaStreams使用封面下的常规KafkaConsumers和KafkaProducers客户端来检索记录并将处理结果发送给经纪人。它为许多配置使用预定义值,但仍然暴露了许多客户端配置。

KafkaStreams是使用Kafka客户端(消费者和制作人)的常规(尽管非常先进)Kafka应用程序。它的API允许更高级别的应用程序专注于业务逻辑而不是Kafka细节。

作为Apache Kafka发行版的一部分,它正在使用最佳实践和技巧来充分利用Kafka。

相关问题