Akka Stream Kafka vs Kafka Streams

nsa*_*lar 36 scala stream-processing typesafe akka-stream apache-kafka-streams

我目前正在与Akka Stream Kafka合作与kafka互动,我很惊讶与Kafka Streams有什么不同.

我知道基于Akka的方法实现了反应性规范并处理了kafka流似乎缺乏的背压和功能.

使用kafka流比akka溪流kafka有什么好处?

Fre*_* A. 38

你的问题非常笼统,所以我会从我的观点给出一般答案.

首先,我有两个使用场景:

  1. 我正在从kafka读取数据,处理它并将一些输出写回kafka的情况,因为我只使用kafka流.
  2. 对于那些我正在使用akka流的情况,数据源或接收器不是kafka的情况.

这已经允许我回答有关背压的部分:对于上面的第一种情况,卡夫卡流中存在背压机制.

现在让我们只关注上述第一种情况.如果我决定停止使用Kafka流,让我们看看我会放松一下:

  • 我的一些流处理器阶段需要一个持久(分布式)状态存储,kafka流为我提供它.这是akka溪流不提供的东西.
  • 扩展,kafka流一旦启动流处理器的新实例,或者一旦被杀死,就会自动平衡负载.这适用于同一个JVM以及其他节点:扩展和扩展.这不是由akka流提供的.

这些是对我来说最重要的差异,我希望你对它有意义!


vgk*_*ski 5

Akka Stream 相对于 Kafka Streams 的一大优势是可以实现非常复杂的处理图,这些处理图可以通过扇入/扇出和反馈循环循环。如果我没记错的话,Kafka 流只允许非循环图。在 Kafka 流之上实现循环处理图会非常复杂

  • 这是不正确的,Kafka 流可以使用循环流。 (4认同)