【问题标题】:2 akka streams with kafka in between best practices在最佳实践之间使用 kafka 的 2 个 akka 流
【发布时间】:2021-03-19 19:31:09
【问题描述】:

我有一个发布到 Kafka 服务器的流 A 和一个从 Kafka 服务消费、处理然后发布到多个 Kafka 主题的流 B。 流 A 的生产速度约为 50 毫秒(包括发布到 kafka),流 B 的处理和生产速度为 500 毫秒(因此,慢了 10 倍)。 因此,即使某些记录现在由流 A 发布,流 B 处理有时需要长达 5 分钟,当处于高负载时(例如一次处理 50k 条记录),这不是替代方案并且接近不可接受。 我的问题是:一般来说,这种情况的最佳实践是什么,以及什么是处理这个问题的快速方法?这些流是同一个应用程序的一部分。 我知道也许我只给出了大图,但我正在寻找一个起点,欢迎任何想法。

【问题讨论】:

    标签: scala akka apache-kafka-streams akka-stream


    【解决方案1】:

    Kafka 没有背压机制。如果下游消费者速度较慢,则延迟会增加。

    解决这个问题的方法是旋转更多的消费者实例或让你的消费者更强大(可能更多的 CPU,但取决于瓶颈是什么)。

    听起来您在同一个部署中同时拥有上游生产者和下游消费者。这有点值得怀疑:为什么不让B直接从A的源头消费呢?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-09-15
      • 2018-01-19
      • 1970-01-01
      • 1970-01-01
      • 2016-08-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多