它是构建在 Spring 生态之上,包括 Spring5、Spring2 和 Project Reactor(Spring WebFlux) 。
Spring WebFlux 框架底层使用了 Reactor 模式高性能通信框架 Netty 。
官网:官网地址2.2 Spring Cloud Gateway 特性Features:
github: github 地址
Spring Cloud Gateway 是用来替代 zuul 网关,因为 zuul2 开发进度落后 。
- 基于 Spring Framework 5、Project Reactor 和 Spring 2.0 构建
- 能够在任何请求属性上匹配路由
- Predicates 和 Filters 作用于特定路由,易于编写的 Predicates 和 Filters
- 集成了断路器
- 集成了 Spring Cloud DiscoveryClient
- 很容易编写 Predicates 和 Filters
- 具备网关一些高级功能:动态路由、限流、路由重写
Spring Cloud Gateway 中的重要概念:
(1) Filter(过滤器)
可以使用它来拦截和修改请求,并且对它的上文的响应进行处理 。
(2) Route(路由)
网关配置的基本组成模块 。一个 Route 模块由一个 ID,一个目标 URI,一组断言(Predicate)和一组过滤器(Filter)组成 。如果断言为真,则路由匹配,目标 URI 会被访问 。
(3)Predicate(断言):
路由转发的判断条件,可以使用它来匹配来自 HTTP 请求的任何内容,例如修改请求方式、请求头内容、请求路径、请求参数等 。如果匹配成功,则转发到相应的服务里 。
Predicate 是路由的匹配条件,匹配之后,Filter 就对请求和响应进行精细化处理 。有了这两个工具,再加上目标 URI 可以实现一个具体的路由,就可以对具体的路由进行处理操作 。
2.3 Gateway 处理流程流程图:

文章插图
- 客户端向 Spring Cloud Gateway 发出请求
- Spring Cloud Gateway 通过 Gateway Handler Mapping 找到与请求相匹配的路由,将其发送到 Gateway Web Handler 。
- Gateway Web Handler 通过指定的过滤器链(Filter Chain)来处理请求,然后发送到实际的执行业务服务中,业务逻辑执行完后返回 。
- 业务逻辑执行完成后,又经过了过滤器链(Filter Chain),这里又可以对执行完后的业务逻辑进行加工处理 。
说明:过滤器链中的虚线分开过过滤器,是表示过滤器会在业务逻辑处理之前进行 Filter 或处理完之后在进行 Filter 。三、Apache ShenYu(神禹)3.1 介绍Apache ShenYu 是使用 Java reactor 编程方式开发的,是一个可扩展、高性能、响应式的 API 网关 。
在请求转发到服务端前(Proied Service 前),可以进行 Filter 处理(上图中虚线左边部分),例如权限检查、参数效验、流量监控、协议转换等处理 。
在服务端处理完业务逻辑后,也可以进行 Filter 处理(上图中虚线右边部分),例如修改响应头、日志输出、流量监控等处理 。
官网:ShenYu 官网3.2 架构ShenYu version:2.5.0
Doc: ShenYu Doc
整体架构流程图

文章插图
(来自:https://github.com/apache/shenyu)
经验总结扩展阅读
- 微信如何一键转发(朋友圈一键转发功能)
- 怎么把别人的微信转发给别人(微信怎么转发别人的朋友圈)
- 天涯明月刀9月28日微信每日一题答案是什么
- 黑色沙漠手游9月28日微信每日一题答案是什么
- 新剑侠情缘9月28日微信每日一题答案分享
- 火影忍者9月28日微信每日一题答案是什么
- TCL电视安装注意事项 TCL电视售后服务
- 微信公众号怎么转发(微信上面的公众号如何转发)
- 怎样转发微信内容到朋友圈(如何将微信中的内容转发到朋友圈)
- 微信如何转发(微信朋友圈一键转发)