0%

微服务:API Gateway

什么是 API网关

API网关是一个服务器,是系统的唯一入口. 从面向对象设计的角度看,它与外观模式类似.

API网关封装了系统内部架构,为每个客户端提供一个定制的API.它可能还具有其它职责,如身份验证、监控、负载均衡、缓存、协议转换、限流熔断、静态响应处理.

API网关方式的核心要点是: 所有的客户端和消费端都通过统一的网关接入微服务,在网关层处理所有的非业务功能. 通常,网关也是提供REST/HTTP的访问API.

网关应该具有那些能力

微服务网关作为微服务后端服务的统一入口, 它可以统筹管理后端服务,主要分为数据平面控制平面:

数据平面主要功能是接入用户的HTTP请求和微服务被拆分后的聚合.使用微服务网关统一对外暴露后端服务的API和契约,路由和过滤功能正是网关的核心能力模块.另外,微服务网关可以实现拦截机制和专注跨横切面的功能,包括协议转换、安全认证、熔断限流、灰度发布、日志管理、流量监控等.

控制平面主要功能是对后端服务做统一的管控和配置管理.例如,可以控制网关的弹性伸缩; 可以统一下发配置; 可以对网关服务添加标签; 可以在微服务网关上通过配置Swagger功能统一将后端服务的API契约暴露给使用方, 完成文档服务, 提高工作效率和降低沟通成本.

  • 限流
  • 熔断
  • 安全
  • 缓存
  • 重试
  • 负载均衡
  • 反向路由
  • 认证,鉴权
  • 日志收集
  • 监控
  • IP列表:黑名单,白名单
  • 流量染色
  • 协议转换
  • API管理

下图 是 Kong 官方 的一个简单架构图.

常见的开源网关对比

功能 Apache APISIX Kong Tyk
项目归属 Apache Kong Inc
技术架构 Nginx + etcd Nginx + postgres Golang + Redis
部署模式 单机&集群 单机&集群 单机&集群
单核Qps(开启限流和 prometheus) 18,000 1700
平均延时 0.2ms 2ms
配置生效时间 时间通知, 低于 1ms 定时轮询 5s
支持配置回滚 [x] []
热插件更新 [x] []
用户自定义负载均衡算法,路由 [x] [] []
控制台 [x] [] []

欢迎关注我的其它发布渠道