Apache flink 与apacheflink的同步响应

Apache flink 与apacheflink的同步响应,apache-flink,Apache Flink,到目前为止,我在网上找不到我的问题的任何答案,所以我觉得在这里提问很好。 我知道Apache Flink在设计上是异步的,但我想知道是否有任何项目或设计旨在与Flink构建同步管道 对于同步响应,我的意思是,例如,有一个API端点,我将数据发送到该端点,处理由Flink完成,处理的结果在API调用的答案主体中返回(以任何形式),例如200 我已经研究了RabbitMQ RPC,但未能成功实现它。 我很乐意接受任何指导或建议。 谢谢 Jon我想到的最贴切的事情似乎是使用Apache Bahir中的

到目前为止,我在网上找不到我的问题的任何答案,所以我觉得在这里提问很好。 我知道Apache Flink在设计上是异步的,但我想知道是否有任何项目或设计旨在与Flink构建同步管道

对于同步响应,我的意思是,例如,有一个API端点,我将数据发送到该端点,处理由Flink完成,处理的结果在API调用的答案主体中返回(以任何形式),例如200

我已经研究了RabbitMQ RPC,但未能成功实现它。 我很乐意接受任何指导或建议。 谢谢
Jon

我想到的最贴切的事情似乎是使用Apache Bahir中的
TcpSource
部署Flink job。您可以拥有一个HTTP端点,该端点将接收一些数据并在指定的地址上调用Flink,然后对其进行处理并创建响应。问题是Bahir中只有
TcpSource
可用,这意味着您需要自己创建大部分代码(整个
Sink

还有其他方法可以做到这一点(比如尝试为每条消息分配一个id,然后等待带有该id的消息到达卡夫卡并将其作为响应发送,但似乎很麻烦且容易出错)

另一种方法是使响应异步(我知道这个问题特别提到同步响应,但只是为了完整起见才提到)


然而,我想说的是,在我看来,这似乎是对Flink的滥用。Flink的主要设计目的是允许在多个节点上进行实时计算,但这里的情况似乎不是这样。我建议研究不同的流媒体库,它们更轻量级,更容易编写,并且可以提供您想要的现成功能。例如,您可能想看看Akka Streams。

我认为您需要提供更多关于同步的确切含义的信息。你到底想实现什么?你可以看看Drivetribe,它使用Flink作为他们网站的后端@Dominikowsiński感谢您的跟进-我编辑了这个问题,希望现在更清楚了?嗨,Dominik,感谢您的全面回答-我同意这可能不是Flink最常见的使用案例,但我实际上在寻找一个框架,可以准确实现“多节点上的实时计算”。只要使用扩展就可以将结果直接返回给请求者,以防结果的计算低于API超时。我将有一个Akka流虽然,并可能与您的ID方法试验。谢谢