SpringCloud 07 微服务网关

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

相关推荐
Java中文社群1 天前
炸裂:SpringAI新版发布,终于支持断线重连了!
java·后端·ai编程
不会聊天真君6471 天前
ES(springcloud笔记第五期)
笔记·elasticsearch·spring cloud
哈喽姥爷1 天前
Spring Boot--Bean的扫描和注册
java·spring boot·后端·bean的扫描和注册
problc1 天前
Spring Boot `@Service` 互相调用全攻略:`@Autowired` vs `@Resource`
java·spring boot·后端
码熔burning1 天前
JVM 对象创建的核心流程!
java·jvm
努力努力再努力wz1 天前
【C++进阶系列】:万字详解红黑树(附模拟实现的源码)
java·linux·运维·c语言·开发语言·c++
毕设源码纪师姐1 天前
计算机毕设 java 高校机房综合管控系统 基于 SSM+Vue 的高校机房管理平台 Java+MySQL 的设备与预约全流程系统
java·mysql·课程设计
渣哥1 天前
HashMap 扩容为啥总是 2 的倍数?一场来自底层的“强迫症”探险
java
叫我阿柒啊1 天前
从Java全栈到前端框架的实战之路
java·数据库·微服务·typescript·前端框架·vue3·springboot
wu~9701 天前
开发思路篇:转账接口设计
java·开发语言