NOTE

2.7 如何设计API网关

1. 什么是API网关 - 网关=路由器+过滤器 - 路由器:外部请求的入口(单点入口)。一般微服务都是部署在内网,所有外部请求都先经过网关,由网关转发到后端服务器(服务路由)。 - 过滤器:限流熔断、安全认证、日志监控等 2. 为什么要需要API网关 - 抽取公共逻辑 - 像授权认证的代码在每个服

Software Architecture & Engineering创建于 更新于 historical

这是历史学习笔记,可能存在过时或不完整的理解。

1. 什么是API网关

  • 网关=路由器+过滤器
    • 路由器:外部请求的入口(单点入口)。一般微服务都是部署在内网,所有外部请求都先经过网关,由网关转发到后端服务器(服务路由)。
    • 过滤器:限流熔断、安全认证、日志监控等

2. 为什么要需要API网关

  • 抽取公共逻辑
    • 像授权认证的代码在每个服务中都得写一套。有了网关后,授权认证这类横切功能都可以写在网关中
  • 统一不同客户端的入口,避免形成网状结构
    • 如果没有网关,客户端直连每个微服务

3. 如何实现API网关

3.1. 如何转发请求

3.2. 如何过滤请求

  • 责任链

3.3. IO模型

  • 如果后端服务是CPU密集型,那么使用同步阻塞即可
  • 如果后端服务是IO密集型,那么使用异步或者IO多路复用
  • IO模型.md

4. API网关组件

4.1. Spring Cloud Zuul

Zuul.md(原链接已失效)

4.2. Spring Cloud Gateway

Gateway.md(原链接已失效)

4.3. Tyk

4.4. Kong

5. 模式

5.1. BFF

网关-BFF模式

5.2. 网关聚合模式

网关-网关聚合模式

6. 参考