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

Api网关如何将响应组合成微服务

陶文林
2023-03-14

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

共有1个答案

拓拔富
2023-03-14

并不是所有的API网关都支持聚合。这是一个使用Nginx为单个客户机调用聚合两个服务响应的示例。

这样做的副作用是它在API网关层引入了耦合。

另一个可能的解决方案是使用聚合微服务。该服务的主要职责是提供客户端API。它可以多次调用其他微服务来为客户制定响应。参见下面的示例

  @RequestMapping(path = "/product", method = RequestMethod.GET)
  public Product getProduct() {

    var product = new Product();
    String productTitle = informationClient.getProductTitle();
    Integer productInventory = inventoryClient.getProductInventories();

    if (productTitle != null) {
      product.setTitle(productTitle);
    } else {
      product.setTitle("Error: Fetching Product Title Failed"); //Fallback to error message
    }

    if (productInventory != null) {
      product.setProductInventories(productInventory);
    } else {
      product.setProductInventories(-1); //Fallback to default error inventory
    }

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

  • 在微服务架构中,建议: > 客户端应用程序到API网关的通信应该是同步的(就像http上的REST一样)。 API网关到微服务的通信也应该是同步的 但是服务到服务的通信应该是异步的。 您应该尽可能遵循的另一个规则是,只使用内部服务之间的异步消息传递,只使用从客户端应用程序到前端服务(API网关加上第一级微服务)的同步通信(如HTTP)。 现在,如果我理解正确的话,当用户向API gateway请求

  • 我们有一堆前面有API网关的微服务。我们创建了一个搜索服务,可以搜索服务并为客户端应用程序聚合数据。我们有两种方法可以做到这一点: 让 API 网关直接联系搜索服务,为其提供有关要搜索的微服务的上下文。 让 API 网关直接联系每个微服务( 我们目前已经在这样做),并让每个微服务自行处理联系(或不联系)搜索服务。 我喜欢第二种方法,因为它可以将搜索抽象完全隐藏在API网关之外,但由于每个微服务都负

  • null 最终产品将是,它将具有图像、描述、评分(满分为5分)和许多评论。 在微服务架构中,应该在什么位置组合多个微服务的响应? 大约1: MVC/REST API接近APIGateway API网关对所有微服务进行异步调用 响应将返回到MVC/WebAPI。在这里可以执行响应的合成。 大约2: MVC/REST API接近Apigateway API网关对产品微服务进行异步调用。 Product

  • 我已经部署了带有Lambda函数和API网关的AWS堆栈。部署后,我独立测试了Lambda函数,它工作正常,但当我使用AWSAPI网关调用它时,它失败了` 内部错误:502 我看了一下cloudwatch的日志,上面写着 转换前的endpoint响应体:null 我以以下方式返回Lambda(Python 3.6)的响应-

  • 当我们部署到pcf时,Netflix eureka、zuul、ribbon、feign spring cloud配置不有用?(如果是,在pcf中有哪些可选方案以及如何配置它们?) 由于构建微服务遵循CI/CD方法,开发人员在推送代码之前如何验证其微服务的工作,因为我们在生产PCF中没有使用eureka、zuul、ribbon、feign。(如何在developer Machine中模拟pcf环境?