【发布时间】:2016-06-11 13:15:26
【问题描述】:
假设我有两个 Kafka 主题,A 和 B。我正在尝试开发一个系统,从 A 中提取记录,对每个记录应用转换,然后将转换后的记录发布到 B。在这种情况下,转换涉及通过 HTTP 调用 REST 端点。
作为 Kafka 的新手,我很高兴看到 Kafka Streams 项目已经解决了这类问题(consume-transform-publish)。不幸的是,我发现 Kafka 流中的转换是 阻塞 操作。本能地,我尝试以 非阻塞、异步的方式调用 HTTP 端点。
这是否意味着 Kafka Streams 在这种情况下无法工作?这是否意味着我必须恢复以阻塞方式调用 REST 端点?这甚至是 Kafka Streams 可以接受的模式吗?基于流的数据处理对我来说还是比较新的,所以我并不完全熟悉它的并发模型。
【问题讨论】:
-
如果您能多了解一下您打算如何处理这些电话,那就太好了。介意发布(伪)代码来构建您正在使用的 Kafka Streams 实例吗?我问是因为调用 REST 端点听起来不像是典型的转换。后者通常意味着更改键和值。
-
Adam,你有没有为这个问题探索过实际的异步方法?看了更多,我认为我的答案可能不完整或错误。
标签: concurrency apache-kafka apache-kafka-streams