【发布时间】:2019-06-03 11:55:01
【问题描述】:
我想知道为什么 Kafka Stream API 中没有通过简单回调或 Java 的 CompletableFuture 或 Scala Futures 提供非阻塞支持。
我知道需要维护分区中的排序,但是跨分区我看不出通过阻塞昂贵的资源来实现排序的原因:线程。
即当我让我的 Kafka Streams 应用程序调用外部服务时,例如在 mapValues 在 1 个服务器上运行并且我有超过数千个分区,我可能会锁定机器,因为所有线程都被阻塞。在这里有一些像 mapValuesAsync() 这样的 API 方法会很好,不是吗?
还可以想象一下,在 Kafka Stream App 上,在其流程中执行多个阻塞操作,每个主题需要更少的分区才能遇到问题。在这里浪费线程看起来不是一个好的 API 设计。
是否计划为此提供任何支持?还是我在这里监督一些事情?
【问题讨论】:
标签: apache-kafka apache-kafka-streams