近些年,为了应对日益复杂的业务场景,网关选型成为了各大互联网公司的一个技术关切点。而 Spring Cloud GateWay 作为微服务的入口,地位可见一斑。它集成了对负载均衡,动态路由,访问控制,限流熔断,埋点监控等功能的支持,旨在为微服务架构提供一种简单有效的、统一的 API 路由管理方式。

同时,GateWay 的底层框架具备注解驱动和自动化配置等特性,处理的并发数更高,使用和扩展起来难度也相对容易。但是要真正搞明白 Spring Cloud Gateway 框架,难度却不小——

1. 要对路由、断言(Predicate)、过滤器(Filter)等这些专用概念有一个深入的了解。

2. 由于它依赖 Spring WebFlux, 基于 Netty 运行,不能在传统的servlet容器中工作。这就造成了没有 WebFlux 基础的朋友感觉无从下手。

即便上手之后,同样也会有不少困惑:

作为所有请求流量的入口,如何保证高可靠和高可用,尽量避免重启?

Spring Cloud Gateway 动态路由配置有没有好的实现方法?

API 网关升级时,跨域请求设置该怎么处理?

为什么放弃 zuul 而改用 Spring Cloud gateway?