微服务架构设计模式-(12)外部api

外部API指的是服务对外提供的公共API

  • 难点
    • 细粒度API
      • 客户端需要多次请求,才能拿到数据,体验不好,效率低
    • 调用方的API封装
      • 客户端关心了服务端的知识,导致耦合
    • 服务端可能采用了不友好的通信机制
      • 比如grpc,不太容易让客户端使用

API Gateway

  • 一个服务,客户端使用微服务的入口点

  • 负责请求路由、API组合、身份验证

    • 个人觉得API组合还是由专门的API聚合服务来做比较好,这里的API Gateway做通用的操作,单纯的转发请求,身份验证
  • 边缘功能

    • 身份验证
    • 访问授权(权限验证)
    • 速率限制
    • 缓存
    • 请求指标收集
    • 请求日志
  • 问题

    • 职责不明确,需要确定哪些是API Gateway团队负责的
      • 有种解决办法:每种客户端都实现单独的API Gateway
  • 好处

    • 客户端直接与API Gateway通信,提高效率,简化客户端代码
  • 弊端

    • 可能存在成为开发瓶颈的风险(因为都要经过它)

你可能感兴趣的:(微服务,架构,云原生)