当Source和Sink在Kafka中时,使用Flink而不是Kafka Streams来提高性能



假设我有通过Kafka主题输入的数据,并且输出的数据也要发送到Kafka话题,那么在什么情况下Flink能够比Kafka Streams更快地处理数据?至少在消耗和制作时间方面,我不认为Flink会比Kafka Streams快。

Flink和Kafka Streams都构建在同一个Producer和Consumer API之上,因此它们的行为在某种程度上类似。一旦进入特定的API/DSL,堆栈就会嵌套得更多。

除了记录序列化之外,与Kafka的KSQL相比,Flink可以执行更多的任务,比如使用Flink SQL,但在这些情况下,您需要管理一个外部集群。

就我个人而言,我发现Kafka Streams开发和维护更快,因为应用程序本身是可部署的单元,而不是提交给可能被某些调度器抢占的资源池的东西。但是,如果您想使用的不仅仅是JVM语言,那么您将需要冒险使用Flink甚至Beam。其他语言的速度会慢一些,因为代码会与那些本地Java库进行接口。

最新更新