首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Kafka流中执行异步转换

在Kafka流中执行异步转换
EN

Stack Overflow用户
提问于 2016-06-11 13:15:26
回答 1查看 3.4K关注 0票数 7

假设我有两个Kafka主题,A和B。我试图开发一个系统,从A中提取记录,对每个记录应用转换,然后将转换的记录发布到B。在本例中,转换涉及通过HTTP调用REST端点。

相对于Kafka来说,我很高兴看到Kafka项目已经解决了这类问题(消费-转换-发布)。不幸的是,我发现Kafka流中的转换正在阻塞操作。出于本能,我尝试以非阻塞、异步的方式调用HTTP端点.

这是否意味着卡夫卡流不会在这种情况下工作?这是否意味着我必须以阻塞的方式返回到调用REST端点?这是卡夫卡流可以接受的模式吗?基于流的数据处理对我来说还是比较新的,所以我并不完全熟悉它的并发模型。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-06-17 17:09:52

Update:在进一步研究这个问题之后,我不确定这是正确的答案.

我对卡夫卡和卡夫卡流(下称“卡夫卡”)并不陌生,但在遇到并考虑过类似的问题后,我的观点如下:

卡夫卡有两个突出的特点:

  1. 所有并行性都是通过对主题进行分区来实现的。
  2. 在主题的分区中,处理是强有序的,一次一次.

许多非常好的属性都是从这些特性中消失的。例如,我认为基于流的“事务”是最酷的之一。

但是,这些属性是否实际上是您想要的“特性”,当然,取决于应用程序。如果您不希望基于主题分区的具有并行性的强有序处理,那么您可能不希望在该应用程序中使用Kafka。

因此,在以下方面:

这是否意味着卡夫卡流不会在这种情况下工作?

它可以工作,但是通过增加分区来增加并行性。

这是否意味着我必须以阻塞的方式返回到调用REST端点?

是的,我想是的--但我不知道为什么会是“回归”。就我个人而言,这就是我喜欢Kafka的地方:阻止代码更简单。如果我想要更多的并行性,我可以运行更多的线程。毕竟没有共享的状态。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37764169

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档