NOTE
2.7 如何设计API网关
1. 什么是API网关 - 网关=路由器+过滤器 - 路由器:外部请求的入口(单点入口)。一般微服务都是部署在内网,所有外部请求都先经过网关,由网关转发到后端服务器(服务路由)。 - 过滤器:限流熔断、安全认证、日志监控等 2. 为什么要需要API网关 - 抽取公共逻辑 - 像授权认证的代码在每个服
这是历史学习笔记,可能存在过时或不完整的理解。
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

5.2. 网关聚合模式
