Ada*_*ter 6 concurrency apache-kafka apache-kafka-streams
假设我有两个 Kafka 主题,A和B。我正在尝试开发一个系统,从A中提取记录,对每个记录应用转换,然后将转换后的记录发布到B。在这种情况下,转换涉及通过 HTTP 调用 REST 端点。
作为 Kafka 的新手,我很高兴看到 Kafka Streams 项目已经解决了此类问题(consume-transform-publish)。不幸的是,我发现 Kafka 流中的转换会阻塞操作。本能地,我尝试以非阻塞、异步的方式调用 HTTP 端点。
这是否意味着 Kafka Streams 在这种情况下不起作用?这是否意味着我必须恢复以阻塞方式调用 REST 端点?这甚至是 Kafka Streams 可接受的模式吗?基于流的数据处理对我来说还是比较陌生的,所以我并不完全熟悉它的并发模型。
更新:进一步研究后,我不确定这是正确的答案......
\n\n我是 Kafka 和 Kafka Streams(以下简称“Kafka”)的新手,但遇到并考虑过类似的问题,以下是我的观点:
\n\nKafka有两个显着的特点:
\n\n许多非常好的特性都源于这些特性。例如,我认为基于流的“交易”是最酷的之一。
\n\n但是,这些属性是否实际上是您想要的“功能”,当然取决于应用程序。如果您不希望基于主题分区的并行性进行强有序处理,那么您可能不希望在该应用程序中使用 Kafka。
\n\n所以,关于:
\n\n\n\n\n这是否意味着 Kafka Streams 在这种情况下不起作用?
\n
它可以工作,但是可以通过增加分区来提高并行性。
\n\n\n\n\n这是否意味着我必须恢复以阻塞方式调用 REST 端点?
\n
是的,我认为它确实\xe2\x80\x94,但我不确定为什么这会是“回归”。就个人而言,这就是我喜欢 Kafka 的原因:阻塞代码更简单。如果我想要更多并行性,我可以运行更多线程。毕竟没有共享状态。
\n| 归档时间: |
|
| 查看次数: |
2659 次 |
| 最近记录: |