SpringCloud 07 微服务网关

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

相关推荐
IT_Octopus4 小时前
Spring Boot 线程池关闭:destroyMethod 的作用与最佳实践
java·spring boot·后端
亦暖筑序5 小时前
AgentScope-Java 入门:完善 Vue 前端、发布 GitHub,并规划下一步
java·前端·vue.js
wddptwd285 小时前
android studio 报错怎么处理 java.lang.NullPointerException
android·java·android studio
霸道流氓气质5 小时前
分布式系统中接口时序不确定性处理
java·开发语言·分布式
深入云栈5 小时前
Netty 4.2.x 源码深度解析 (四):HashedWheelTimer —— 时间轮定时调度算法
java
带刺的坐椅5 小时前
别再把 Coding Agent 当智能补全了:SolonCode 想做的是数字员工
java·solon·codex·claudecode·opencode·soloncode
大模型码小白5 小时前
在 Windows 下 Codex 安装、配置与使用详细指南
java·人工智能·windows
Gauss松鼠会6 小时前
【GaussDB】GaussDB锁阻塞源头查询
java·开发语言·前端·数据库·算法·gaussdb·经验总结
mingo_敏6 小时前
DeepAgents : 后端(Backends)
java·开发语言
霸道流氓气质6 小时前
SpringBoot中事务内同步处理 + 事务后异步调用外部系统的通用模式示例
java·spring boot·后端