SpringCloud 07 微服务网关

服务发现和服务调用是微服务系统内部调用方式。外部请求进入微服务系统,首先经过微服务网关。

微服务网关本身也是一个微服务。

gateway 规则由三部分组成:路由,谓词,过滤器。

路由是网关的基本单元。实现将请求路由到目标地址。谓词是路由的条件。

可以在配置文件中硬编码路由规则,更推荐的方式是 Nacos 动态配置路由规则。

gateway内置谓词有三类:寻址谓词,请求参数谓词,时间谓词。

寻址谓词:Path=/api/age/**,比如path匹配路径。method谓词匹配请求方法。

请求参数谓词:可以是请求参数,可以是请求头参数,可以是cookie。

时间谓词:before,after,between 时间。

继承AbstractRoutePredicateFactory 抽象类,在 apply 方法自定义谓词逻辑。

过滤器可以拦截请求, 执行额外操作,比如添加请求头参数,修改路径,修改请求体。

自定义过滤器分三类:全局过滤器 ,路由过滤器,过滤器工厂。

全局过滤器实现 GlobalFilter 接口,在所有路由请求上执行。可以实现通用功能,比如日志。

路由过滤器实现 GatewayFilter 接口,针对特定路由。

过滤器工厂实现根据参数动态创建过滤器类。属于工厂模式。

相关推荐
怒放吧德德11 小时前
Netty 4.2 入门指南:从概念到第一个程序
java·后端·netty
雨中飘荡的记忆13 小时前
大流量下库存扣减的数据库瓶颈:Redis分片缓存解决方案
java·redis·后端
心之语歌15 小时前
基于注解+拦截器的API动态路由实现方案
java·后端
华仔啊16 小时前
Stream 代码越写越难看?JDFrame 让 Java 逻辑回归优雅
java·后端
ray_liang16 小时前
用六边形架构与整洁架构对比是伪命题?
java·架构
Ray Liang18 小时前
用六边形架构与整洁架构对比是伪命题?
java·python·c#·架构设计
Java水解18 小时前
Java 中间件:Dubbo 服务降级(Mock 机制)
java·后端
SimonKing1 天前
OpenCode AI辅助编程,不一样的编程思路,不写一行代码
java·后端·程序员
FastBean1 天前
Jackson View Extension Spring Boot Starter
java·后端
Seven971 天前
剑指offer-79、最⻓不含重复字符的⼦字符串
java