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

* 客户端会对此请求不同的微服务,增加客户端复杂性
* 存在跨域请求时,需要进行额外处理
* 认证服务,每个服务需要独立认证
* UI端和微服务耦合
API网关做了什么事情?
- 统一入口
- 统一限流
- 统一认证鉴权
- 动态路由制定和修改
- 负载
- 服务容错降价
- 版本控制
- 统一监控日志记录
- 协议转换: 如 HTTP => RPC协议
- 缓存
- 静态
- 灰度:线上灰度部署,可以减小风险。
API网关技术栈选择?
- Spring Cloud Zuul
- Spring Cloud gateway
- OpenResty
- Kong : 基于OpenResty的 API 网关服务和网关服务管理
- Linkerd之于Service Mesh
- 其他
每一个技术栈都有自己的优势,可以自行选择,后面先从Spring Cloud Zuul 开始