最佳实践:来自异步处理的同步响应

问题描述 投票:0回答:1

enter image description here

  1. Web API在端点上接收客户的信用卡请求数据。

  2. 端点将带有此数据的消息发送到kafka。

  3. 本主题中将有多个Pod /容器连接到kafka,以并行处理每个请求。该应用程序需要很高的异步处理能力。

  4. 发送请求后,前端将显示进度条并等待。该过程完成后,它需要一个响应。

问题

如何在同一调用中返回此端点的结果处理将在另一个Web API项目中完成?(异步)

我什么

  • 在kafka中创建一个主题以通知处理完成,并在发送CreditCardRequest消息以在kafka上进行处理后在端点中对其进行订阅。

  • 每3到4秒(在池中)使用mongo上的查询,并检查Workder / Pod / Processing Container是否包含该记录。 (URRGGH)

  • 为前端创建另一个端点以查询操作状态,该端点还将在mongo中进行查询以检查进程的当前状态。

我很想知道是否没有用于这些情况的框架/标准。

c# asp.net-web-api kubernetes apache-kafka distributed-computing
1个回答
0
投票

是的,有一些处理此问题的框架。从.NET的角度来看,我过去使用nServiceBus做类似的事情(协调长时间运行的进程)。

他们有一个叫做Sagas https://docs.particular.net/nservicebus/sagas/的概念英雄传说将等待完成处理所需的所有消息,然后通知该过程的下一步继续。

如果该框架没有用,希望这些过程有用,您可以发现如何在Kafka / Mongo环境中实现。

© www.soinside.com 2019 - 2024. All rights reserved.