示例

假设有一个电商App的“我的订单”页面,需要展示订单列表和用户昵称。

  • ​没有业务网关​​:

      App先请求​**​订单服务​**​获取订单列表。
    
      订单列表里只有用户ID,没有用户名。
    
      App再拿着用户ID去请求​**​用户服务​**​获取用户昵称。
    
      App将两次获取的数据组合后展示。
    
      - 
          
          ​**​问题​**​:App发出了多次请求,逻辑复杂,延迟高。
          
      
    
  • ​有业务网关​​:

      App只发送一次请求到 ​**​业务网关​**​:`GET /api/my-orders`。
    
      网关进行​**​身份认证​**​(检查Token)。
    
      网关​**​同时调用​**​订单服务的`/internal/orders`和用户服务的`/internal/users`(内部协议,如gRPC)。
    
      网关将两个服务返回的数据​**​聚合​**​成客户端需要的JSON格式。
    
      网关将最终组合好的数据返回给App。
    
      -             
          ​**​好处​**​:客户端逻辑简单,只需一次请求,体验更好,后端微服务之间的调用在机房内部完成,速度极快。