GateWay网关微服务定位和理论知识

微服务架构的网关在哪里?

概念

SPring Cloud Gateway组件的核心是一系列的过滤器,通过这些过滤器可以将客户端发送的请求转发(路由)到对应的微服务。Spring Cloud Gateway是加在整个微服务最前沿的防火墙和代理器,隐藏微服务节点IP端口信息,从而加强安全保护。Spring Gateway本身也是一个微服务,需要注册进服务注册中心。

Spring Cloud Gateway三大概念:路由Route、断言Predicate、过滤器Filter。

路由是构建网关的基本模块,它由ID,目标URI,一系列的断言和过滤器组成的,如果断言为true则匹配该路由。

断言(predicate)参考的是java8的java.util.function.predicate开发者可以匹配http请求中的所有内容(例如请求头或者请求参数),如果请求与断言橡皮撇则进行路由。

过滤:指的是Spring框架中的Gatewayfilter的实例,使用过滤器,可以在请求被旅游前或者之后对请求进行修改。

工作流程

客户端向Spring Cloud Gateway发送请求。然后在Gateway Handler Mapping中找到与请求相匹配的路由,将其发送到Gateway Web Handler。Handler再通过指定的过滤器链来将请求发送到我们实际的服务执行业务逻辑,然后返回。过滤器之间用虚线分开是因为过滤器可能会在发送代理请求之前或者之后执行业务逻辑。

在"pre"类型的过滤器可以做参数校验、权限校验、流量监控、日志输出、协议转换等

在"post"类型的过滤器中可以做响应内容、响应头的修改、日志的输出,流量监控等有着非常重要的作用。

相关推荐
╰つ゛木槿2 小时前
Spring Boot 调用DeepSeek API的详细教程
java·spring boot·后端·deepseek
hhw1991123 小时前
c#面试题整理6
java·开发语言·c#
程序视点3 小时前
SpringBoot配置入门
java·spring boot·spring
Benaso4 小时前
Java,Golang,Rust 泛型的大体对比小记
java·golang·rust
程序员清风4 小时前
什么时候会考虑用联合索引?如果只有一个条件查就没有建联合索引的必要了么?
java·后端·面试
Seven974 小时前
【设计模式】掌握建造者模式:如何优雅地解决复杂对象创建难题?
java·后端·设计模式
自在如风。5 小时前
MyBatis-Plus 使用技巧
java·mybatis·mybatis-plus
XORE955 小时前
IDEA Generate POJOs.groovy 踩坑小计 | 生成实体 |groovy报错
java·spring·intellij-idea
heart000_15 小时前
基于SpringBoot的智能问诊系统设计与隐私保护策略
java·spring boot·后端
半聋半瞎5 小时前
【进程和线程】(面试高频考点)
java·jvm·面试