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

iovurdzv  于 2021-06-05  发布在  Kafka
关注(0)|答案(1)|浏览(353)


webapi在端点接收客户的信用卡请求数据。
端点将包含此数据的消息发送到kafka。
在本主题中,几个pod/容器将连接到kafka,以便并行处理每个请求。应用程序需要高异步处理能力。
发送请求后,前端将显示一个进度条并等待。这个过程一结束就需要一个回应。
问题
如何在对该端点的同一调用中返回将在另一个webapi项目中执行的处理结果(异步)
我的想法
在kafka中创建一个主题,在发送creditcardrequest消息到kafka上进行处理之后,通知处理完成,并在端点中订阅该主题。
每3~4秒在mongo上使用一次查询(池),并检查worker/pod/processing容器是否包含该记录(乌尔格)
为前端创建另一个端点以查询操作状态,此端点还将在mongo中执行查询以检查进程的当前状态。
我深深地想知道是否有框架/标准已经用于这些情况。

frebpwbc

frebpwbc1#

是的,有一些框架可以处理这个问题。从.net的Angular 来看,我在过去使用nservicebus做过类似的事情(协调长时间运行的进程)。
他们有一个叫做传奇的概念https://docs.particular.net/nservicebus/sagas/ saga将等待完成处理所需的所有消息,然后通知流程的下一步继续。
如果这个框架没有用,那么这些过程是有用的,您可以发现如何在kafka/mongo环境中实现。

相关问题