聊聊为什么需要api网关?

2,299 阅读1分钟

API网关?

没有API网关前系统架构样子?

avatar
客户端和服务端直连的弊端 有什么弊端?

 *  客户端会对此请求不同的微服务,增加客户端复杂性
 *  存在跨域请求时,需要进行额外处理
 *  认证服务,每个服务需要独立认证
 *  UI端和微服务耦合

API网关做了什么事情?

  • 统一入口
  • 统一限流
  • 统一认证鉴权
  • 动态路由制定和修改
  • 负载
  • 服务容错降价
  • 版本控制
  • 统一监控日志记录
  • 协议转换: 如 HTTP => RPC协议
  • 缓存
  • 静态
  • 灰度:线上灰度部署,可以减小风险。

API网关技术栈选择?

  • Spring Cloud Zuul
  • Spring Cloud gateway
  • OpenResty
  • Kong : 基于OpenResty的 API 网关服务和网关服务管理
  • Linkerd之于Service Mesh
  • 其他

每一个技术栈都有自己的优势,可以自行选择,后面先从Spring Cloud Zuul 开始