Spring Cloud Gateway、Kong 和 Zuul 都是流行的 API 网关解决方案,它们在微服务架构中扮演着至关重要的角色,今天我们来说说Spring Cloud Gateway,在后续的文章中我在对其他两个组件进行介绍
Spring Cloud Gateway 是 Spring Cloud 微服务生态系统中的网关组件,旨在为微服务架构提供一种统一的请求路由、过滤和转发机制。它基于 Spring 5 和 Spring Boot 2 开发,使用非阻塞的 Netty 作为网络层,以支持高并发和异步处理。
核心概念
-
Route(路由):路由是网关配置的基本单元,由 ID、目标 URI、一组 Predicates(断言)和一组 Filters(过滤器)组成。如果请求满足所有 Predicates,路由将匹配,并将请求转发到对应的 URI。
-
Predicate(断言):用于定义路由匹配条件,如请求路径、HTTP 方法、请求头等。多个 Predicates 可以组合成复杂的匹配逻辑。
-
Filter(过滤器):过滤器用于在请求被路由前后执行特定的处理逻辑,如修改请求头、添加日志、权限校验等。过滤器分为全局过滤器(GlobalFilter)和路由特定过滤器(GatewayFilter)。
工作原理
-
请求路由:客户端发送请求到网关,网关根据配置的路由规则(Route)进行匹配,找到合适的路由后,将请求转发到目标服务。
-
服务发现:网关集成服务发现机制,能够动态获取服务实例信息,支持负载均衡。
-
过滤器链:请求在被路由前,会通过一系列的过滤器进行处理。过滤器可以修改请求或响应,实现如权限校验、限流等功能。
-
响应聚合:网关可以聚合多个服务的响应,统一返回给客户端。
-
监控统计:网关作为请求的入口,可以方便地进行监