网关
网关运行分析报告
网关运行分析报告 - 2025-02-15
网关运行分析报告 - 2025-02-22
网关运行分析报告 - 2025-02-28
1.shenyu网关内外网使用
2.shenyu网关的具体使用
记一次网关线上问题之icsp访问ERP
再次思考多套ak/sk同时访问同一资源路径问题
网关接入说明
网关接入说明补充
网关分配各系统命名
网关BUG及二开
网关管理端访问地址
修改requestBody与responseBody
shenyu工程理解
获取requestBody异步问题
shenyu工程部署
排查sign插件报错500问题
shenyu数据结构设计
shenyu网关请求过程
shenyu自定义插件
记一次网关线上问题----网关无法对外提供服务
网关插件更新报错问题
网关中grayTag的使用
Exceeded limit on max bytes to buffer : 262144
网关中Divide插件中Selector中Handler中配置丢失问题
网关请求下游系统时长记录
通用测试:获取网关的sign值
网关分发主数据设想方案
铁骑主数据分发机制完善
27.GTMS&ITMS与gateway的关系
28.ZPI与gateway的关系
26.网关验签场景
29.PC端空值,服务端正常请求
30.网关requestMaxSize值
31.跨系统跨语言日志链路追踪
32.网关异步分发讨论
33.网关LoggingConsole丢失日志排查
34.网关升级shenyu-admin
35.网关异步分发插件 - 接入文档
本文档使用「觅思文档专业版」发布
-
+
首页
shenyu网关请求过程
如下从源码层面讲解一次网关请求。 ## 1.认证设置   如上图可知:在认证设置处设置了ak(A14B330A00BD4D1DB01B4DA06AA413E7)与sk(1785C489702042CAB83E4F09B89ABF21)对应的请求认证路径是/message/**。 ## 2.sign插件设置   由上图可知:请求网关时,如果请求路径是/message/facade/**,则需要认证。 ## 3.分发处理 认证插件通过后,则需要执行具体业务,我这里执行的是springcloud服务,如下   如果上述sign插件认证通过后,会执行到springcloud插件这里,执行请求任务。 ## 4.postman样例  http://localhost:9195 是请求域名与端口,/message/**路径则需要认证,如下我们从源码层面查看是如何加载插件的。 ## 5.ShenyuWebHandler gateway启动的时候,会调用ShenyuWebHandler方法将插件缓存到本地List中,代码如下  向gateway发送http请求时,会加载handle方法,从plugins中取出插件。  如上图可知,boolean skip = plugin.skip(exchange);此处代码的源码如下 ``` default boolean skip(ServerWebExchange exchange) { return false; } ``` 即永远返回false,则去执行如下插件对应的具体方法,  接口ShenyuPlugin的方法execute有很多实现类,具体的插件执行自己的实现方法,如下列举AbstractShenyuPlugin类讲解下  如上的过滤条件不成立,则直接返回,进行下一个插件,下一个插件如果过滤条件成立,则进行匹配逻辑,匹配不上,则抛错,终止下一个插件,匹配成功,则进行下一个插件,直至所有插件处理完成。用原作者的图描述如下  ## 6.总结 ShenyuWebHandler类中这一段代码时循环过滤插件 ``` public Mono<Void> execute(ServerWebExchange exchange) { return Mono.defer(() -> { if (this.index < this.plugins.size()) { ShenyuPlugin plugin = (ShenyuPlugin)this.plugins.get(this.index++); boolean skip = plugin.skip(exchange); return skip ? this.execute(exchange) : plugin.execute(exchange, this); } else { return Mono.empty(); } }); } ```
李贤利
2022年9月25日 22:26
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
Word文件
PDF文档
PDF文档(打印)
分享
链接
类型
密码
更新密码
有效期