如上图所示,面对互联网复杂的业务系统,基本可以将 API 网关分成两类:流量网关和业务网关。

跟具体的后端业务系统和服务完全无关的部分,比如安全策略、全局性流控策略、流量分发策略等。流量网关的功能跟 Web 应用防火墙(WAF)非常类似。WAF 一般是基于 Nginx/OpenResty 的 ngx_lua 模块开发的 Web 应用防火墙。

什么是业务网关

服务网关 = 路由转发 + 过滤器
  • 请求接入: 作为所有 API 接口服务请求的接入点,管理所有的接入请求;
  • 业务聚合: 作为所有后端业务服务的聚合点,所有的业务服务都可以在这里被调用;
  • 中介策略: 实现安全、验证、路由、过滤、流控,缓存等策略,进行一些必要的中介处理;
  • 统一管理: 提供配置管理工具,对所有 API 服务的调用生命周期和相应的中介策略进行统一管理。

Spring Cloud Gateway

spring cloud gateway 作为业务网关的一种,整个作用原理如下图。

客户端向 Spring Cloud Gateway 发出请求,如果请求与网关程序定义的路由匹配,则将其发送到网关 Web 处理程序,此处理程序运行特定的请求过滤器链。过滤器之间用虚线分开的原因是过滤器可能会在发送代理请求之前或之后执行逻辑。所有 “pre” 过滤器逻辑先执行,然后执行代理请求,代理请求完成后,执行 “post” 过滤器逻辑。

参考资料

了解更多关于 Spring Cloud Gateway 的信息

♥️ 获取支持

遇到问题?

如果您在使用过程中遇到任何问题、有功能建议或需求,请点击此卡片前往 Gitee 仓库提交 Issue。