SR *_*han 65 apache-kafka kafka-consumer-api apache-kafka-streams
我最近开始学习Kafka并最终得到这些问题.
Consumer和Stream有什么区别?对我来说,如果任何工具/应用程序消费来自Kafka的消息是Kafka世界中的消费者.
流是如何不同的,因为这也消耗或产生消息给卡夫卡?为什么需要它,因为我们可以使用Consumer API编写我们自己的消费者应用程序并根据需要处理它们或将它们从消费者应用程序发送到Spark?
我对此做了谷歌,但没有得到任何好的答案.对不起,如果这个问题太琐碎了.
Mic*_*oll 78
更新2018年4月9日:现在您还可以使用KSQL(Kafka的流式SQL引擎)来处理Kafka中的数据.KSQL建立在Kafka的Streams API之上,它还具有对"流"和"表"的一流支持.可以把它想象成Kafka Streams的SQL兄弟,你不必在Java或Scala中编写任何编程代码.
Consumer API和Streams API有什么区别?
Kafka的Streams API(https://kafka.apache.org/documentation/streams/)建立在Kafka的生产者和消费者客户之上.它比Kafka消费者客户端更强大,也更具表现力.以下是Kafka Streams API的一些功能:
map
,filter
,reduce
以及(2)势在必行风格处理器API用于如做复杂事件处理(CEP),和(3)你甚至可以结合DSL和处理器API.见http://docs.confluent.io/current/streams/introduction.html获得更详细的,但仍然高层次介绍了卡夫卡流API,这也应该帮助你理解差异下级卡夫卡消费客户.还有一个基于Docker的Kafka Streams API教程,我在本周早些时候发表过博客.
那么Kafka Streams API是如何不同的,因为这也消耗或产生消息给Kafka?
是的,Kafka Streams API既可以读取数据,也可以将数据写入Kafka.
为什么需要它,因为我们可以使用Consumer API编写我们自己的消费者应用程序并根据需要处理它们或将它们从消费者应用程序发送到Spark?
是的,你可以写你自己的使用者应用程序 - 正如我所提到的,卡夫卡流API使用卡夫卡消费客户(加上生产者客户端)本身 - 但你必须手动实现所有的流API提供的独特功能.请参阅上面的列表,了解"免费"获得的所有信息.因此,相当罕见的情况是用户会选择低级别的消费者客户端而不是更强大的Kafka Streams API.
sun*_*007 30
为支持 ETL 类型的消息转换而构建的 Kafka Stream 组件。表示从主题输入流,转换并输出到其他主题。它支持实时处理,同时支持聚合、加窗、连接等高级分析功能。
“Kafka Streams 通过构建 Kafka 生产者和消费者库并利用 Kafka 的本机功能来提供数据并行性、分布式协调、容错和操作简单性,从而简化了应用程序开发。”
以下是 Kafka Stream 的关键架构特性。请参考这里
根据我的理解,以下是关键差异,如果遗漏或误导任何一点,我愿意更新
在哪里使用消费者 - 生产者:
在哪里使用 Kafka Stream:
归档时间: |
|
查看次数: |
21216 次 |
最近记录: |