[英]Sync to Async http request and response architecture
我们正在开发一个REST 服务(2),它充当黑盒客户端(1) 和黑盒处理器微服务(4) 之间的适配器。
(2)和(4)使用Kafka相互通信(3)
所有组件都是无状态的(Kafka 除外,对吧?)
首先,客户端使用 http POST(同步)向REST 服务初始化一个命令,然后REST 服务接收此命令并通过Kafka (异步)将其转发给处理器 ms (在进行一些转换后)。 在此步骤之后, REST 服务将休眠(此 http 范围)并等待处理器 ms的结果
然后Processor ms处理这个命令并将结果通过Kafka (异步)发送回REST 服务。 REST 服务唤醒,并在相同的 http scope 内将 ResponseEntity 返回给客户端。
现在我们决定将 (2) 迁移到微服务以利用此架构。 问题出现了:(2)的实例1向(4)发送命令,(4)向实例2发送结果。但是(1)和实例1之间建立了http session,实例2无法返回( 1). 此返回必须由且仅由实例 1 完成。
例如,我的第一个想法是让实例 1 知道 (4) 的结果,无论它被发送到哪个实例。 但目前我们没有解决方案来存档这个想法。
我们需要针对此架构的“非变通”解决方案。 请帮忙。 谢谢
注意:我们无法更改黑盒组件
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.