当前位置: 首页 > 知识库问答 >
问题:

微服务中API网关的异步响应

闽念
2023-03-14

在微服务架构中,建议:

>

  • 客户端应用程序到API网关的通信应该是同步的(就像http上的REST一样)。

    API网关到微服务的通信也应该是同步的

    但是服务到服务的通信应该是异步的。

    您应该尽可能遵循的另一个规则是,只使用内部服务之间的异步消息传递,只使用从客户端应用程序到前端服务(API网关加上第一级微服务)的同步通信(如HTTP)。

    现在,如果我理解正确的话,当用户向API gateway请求并反过来调用第一个服务时,它将返回一个确认(带有一些GUID)并将其传递给客户机应用程序。但是服务将继续执行请求。现在问题出现了,当请求被完全处理时,他们将如何通知客户端应用程序。一种方法是客户机可以使用传递给它的GUID检查状态。

    但是可以用一些推送通知来完成吗?如何集成服务器到服务器的推送通知?

  • 共有1个答案

    毛淳
    2023-03-14

    我对此有一点不同的理解,因为它说服务之间的通信应该是异步的,而到API网关和API网关到服务的通信应该是rest API。因此,我们不需要做任何事情,因为这些都是简单的API调用,管道将处理请求-响应跟踪,而服务之间的异步调用将增加服务的吞吐量。

     类似资料:
    • 我有两个微服务,用户微服务和订单微服务。 因此客户端只需要调用一个endpointhttp://localhost:9090/api/getdetail 我们如何在API网关级别实现这一点?

    • 这种功能性应该如何实施?有关于这方面的指导方针或文章吗?

    • 我正在尝试构建一个微服务架构。我已经了解了API网关的一些好处,比如:负载平衡、调用多个微服务并聚合结果、缓存管理等。所以我决定将它包含在我的系统中。 我的问题是,我应该在网关层还是在每个微服务endpoint单独实现授权?例如,在网关上验证用户,并以解密的形式将用户声明传递给每个服务调用的授权逻辑。 在调用每个服务之前授权一些聚合似乎是有意义的,并且节省了处理时间。然而,授权逻辑实际上是单个服务

    • 我们能在Spring Cloud API网关和没有服务发现的情况下生存吗?

    • 让我们说,我正在开发博客平台,用户可以注册帐户,支付订阅和创建自己的博客。平台由以下微服务组成: 帐户-服务 auth-service 订阅-服务 博客-服务 API-网关 我正在考虑实现api-gw模式,其中除了api-gw之外的所有微服务都将部署到专用网络中(在那里,它们将能够通过message broker直接以同步或异步方式相互通信),并且它们将只通过api-gw公开可用。 null 我的

    • 到目前为止,我还没有找到使用Blazor服务器(不是WebAssembly)和API网关和微服务的指导。讨论这些Blazor以及API网关和微服务的文章总是提到Blazor WebAssembly(Wasm)。(是不是假设Blazor Server应用程序不会使用微服务?此外,值得一提的是,选择Blazor服务器而不是Blazor WebAssembly的原因是为了更好地保护知识产权。) 无论如何