Architecture 微服务或SOA:如何响应一个特定请求

Architecture 微服务或SOA:如何响应一个特定请求,architecture,soa,microservices,Architecture,Soa,Microservices,我对微服务和SOA感兴趣。我读了一些教程。这就是我对SOA的理解。API网关接收大量请求(requestA、requestB等),并将请求放入消息传递队列中。微服务将使用消息队列中的事件并进行一些处理。我的问题是在处理之后,如何将响应返回到请求(responseA到requestA,responseB到requestB) 我不确定我的理解是正确的还是错误的,也不确定消息传递是否在每个体系结构中都使用 任何人都可以给我更多关于如何解耦/连接API网关和微服务的细节/示例。如何响应请求?API网关和

我对微服务和SOA感兴趣。我读了一些教程。这就是我对SOA的理解。API网关接收大量请求(requestA、requestB等),并将请求放入消息传递队列中。微服务将使用消息队列中的事件并进行一些处理。我的问题是在处理之后,如何将响应返回到请求(responseA到requestA,responseB到requestB)

我不确定我的理解是正确的还是错误的,也不确定消息传递是否在每个体系结构中都使用

任何人都可以给我更多关于如何解耦/连接API网关和微服务的细节/示例。如何响应请求?API网关和客户端之间的连接是否应该保持活动状态

对不起,我的问题不清楚。我很困惑,不知道如何理解每个概念


欢迎任何评论。谢谢

API网关和队列在这里并不是很关键(这是微服务的实现细节)

正如@Ilya Bursov所指出的,您正在寻找的是HTTP轮询(重复检查您请求的响应是否已经可用)或


您可以在此处找到更多详细信息

微服务简单的独立单元与message broker通信,从其自己的队列读取需求消息,并再次将响应发送给message broker,message broker将相同的响应广播给所有其他队列


API网关提供rest API并向message broker发布需求消息,该消息将包含microservice处理请求所需的详细信息,还具有自己的唯一队列,该队列与message broker绑定,消息到达后,该队列具有针对特定请求的解决方案,它将响应客户端。

您的理解是错误的,没有队列,您只需向microservice发送一个请求并等待响应,就是这样,消息传递是micro services之间通信的一种方法,REST API是另一种方法。对于消息队列,我想知道如何匹配请求和响应。我对如何实现这种通信的细节很感兴趣。如果您想获得请求的响应,您可以显式地等待响应,也可以使用队列进行异步评估(我不会说这是另一种通信方式,它是不同的应用程序体系结构和设计),在这种情况下,人们通常会在消息中生成一些id,稍后服务器将使用该id将消息发送回另一个队列,以便客户端可以拾取消息,可能还有其他方法通知客户端有关ResultHanks的信息。我真的很困惑于
客户端如何获取它?
保持连接始终处于活动状态?websocket?从技术上讲,websocket是基于不断打开的连接,是的,客户端可以通过保持活动连接不断等待来自服务器的消息。另一种方法是从某个源(数据库、队列、其他服务器)执行周期性拉取,另一种方法是侦听某个端口,这样服务器将打开到客户端的连接并通知响应。