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)
- ShenYu Cluster
- ShenYu Admin,管理 ShenYu gateway
- Plugin
ShenYu 中的一些概念插件、选择器、规则,这些元素都可以在 ShenYu Admin UI 后台进行配置管理 。
- 插件:Apache ShenYu 使用插件化设计思想,可以实现插件的热插拔 , 易扩展 。内置了丰富的插件,包括 RPC 代理、熔断和限流、权限认证、监控等等 。
- 选择器:每个插件可以设置多个选择器 , 对流量进行初步筛选 。
- 规则:每个选择器可以设置多个规则 , 对流量进行更细粒度的控制 。
插件、选择器和规则执行规则:他们之间的数据关系,数据库 UML 图:
当流量进入到 Apache ShenYu 网关之后,会先判断是否有对应的插件,该插件是否开启;
然后判断流量是否匹配该插件的选择器 。
然后再判断流量是否匹配该选择器的规则 。
如果请求流量能满足匹配条件才会执行该插件 , 否则插件不会被执行,处理下一个 。

文章插图
?(来自:https://shenyu.apache.org/zh/docs/design/database-design)
说明:一个插件可以对应多个选择器 , 一个选择器可以对应多个规则,一个规则可以对应多个匹配条件 。
3.3 ShenYu Admin 后台管理Apache ShenYu Admin 是网关的后台管理系统,能够可视化管理所有插件、选择器和规则,设置用户、角色、控制资源 。
推荐阅读
- 如何修改微信密码(怎样修改微信密码教程)
- 如何重新设定微信密码(微信密码8-16位)
- 微信独立密码怎么改(微信登录新手机三天不能改密码)
- 怎么修改微信号,怎么修改微信密码(微信修改微信号的方法)
- 微信怎么修改密码,如何修改微信密码(微信手势密码忘了进不了微信)
- 我的微信密码怎么修改(微信为了账号安全暂不能修改密码)
- 怎样修改微信加密密码(微信如何加密隐藏某个人聊天记录)
- 微信三天以后改密码怎么解决(新版微信三天过后才能改密码)
- 微信不记得原密码怎么修改密码(微信怎样100%申诉成功)
- 天涯明月刀9月28日微信每日一题答案是什么