文章较长,从概念与场景,到原理与架构,到性能分析,最后是demo,希望大家有收获。
第一部分:解决什么问题。
什么是微服务API网关?
API网关是上承前端用户,下接后端服务的咽喉之地,是所有客户端请求响应出入流量的必经之路。
微服务API网关有什么用?
它除了可以做最基础的反向代理之外,还可以处理通用的公共服务逻辑,如负载均衡、灰度发布、限流熔断、统一认证授权、可观测性、动态路由、协议转换、服务编排、流量镜像、健康检查、监控报警、安全防御等等等等。
说得这么抽象,有没有具体的场景呢?
对应到具体场景,举几个常见的例子。
场景一:负载均衡。
当服务器负载上升时,需要立即对系统资源进行容量评估,适当增加扩容服务器资源,让每台服务器可以平均承载分担请求压力,此时应该采用何种负载策略:轮询、随机还是哈希?如果你有API网关,在后台配置好,即可自动实现。
场景二:灰度发布。
上了一个新功能,需要每天自动放 5% 的流量,10天后再一次性全部放开给所有用户。在此期间,可以对新功能加以验证,并对性能和稳定性加以观测优化,提前发现问题、解决问题?如果你有API网关&#