SpringCloudGateway
2024-02-01 15:59:27 0 举报
AI智能生成
SpringCloudGateway是Spring Cloud的一个关键组件,用于提供一种简单、统一的API网关解决方案。它允许开发人员在一个地方定义、实施和管理所有微服务的路由规则,简化了微服务架构的复杂性。SpringCloudGateway利用Netty底层实现高性能、高并发的请求处理,支持多种协议,如HTTP、WebSocket等。此外,它集成了Spring Security和Spring Actuator,提供了出色的安全性和可观测性。你可以通过自定义过滤器、路由断言等扩展功能,实现对请求的拦截、修改、聚合等操作,满足不同的业务需求。
作者其他创作
大纲/内容
架构设计
路由器(Route)
根据客户端请求中的 URL、请求头、请求参数等信息进行匹配,以确定将该请求路由到哪个目标处理器
过滤器(Filter)
负责对客户端请求进行一些处理,包括请求验证、安全控制、日志记录等等
分为:
路由过滤器
对每一个服务进行定制化的过滤,例如黑名单、白名单、限流等
预处理过滤器
token 认证、签名校验、请求参数校验
处理引擎(DispatcherHandler)
接收路由器传来的请求,并将它们交给后端的微服务进行处理,
处理引擎在将请求转发到后端服务之前仍然会经过一系列的过滤器链,
从而实现日志记录、请求转发、返回值处理等功能
处理引擎在将请求转发到后端服务之前仍然会经过一系列的过滤器链,
从而实现日志记录、请求转发、返回值处理等功能
路由配置
基于 yml 配置文件(默认配置方式)
基于 Java 代码实现
过滤器链
全局过滤器
请求转发到具体的微服务之前进行拦截,用于添加公共请求头信息、统一日志记录等
路由过滤器
指定了路由具体的处理行为,对特定请求进行限流、认证、缓存等
限流措施
基于 Redis 的限流措施
基于 Guava 的限流措施
源码分析
GatewayFilter:抽象过滤器接口,所有自定义或内置过滤器都需实现该接口。
GlobalFilter:全局过滤器,作用于所有的路由请求上。
RoutePredicateFactory 和 RouteDefinition:用于定义路由规则及其谓词逻辑。
WebHandler 和 HttpHandler:处理HTTP请求的核心接口。
RouteLocator:路由定位器,用于从配置中加载和维护路由规则。
GlobalFilter:全局过滤器,作用于所有的路由请求上。
RoutePredicateFactory 和 RouteDefinition:用于定义路由规则及其谓词逻辑。
WebHandler 和 HttpHandler:处理HTTP请求的核心接口。
RouteLocator:路由定位器,用于从配置中加载和维护路由规则。
RouteMatcher:路由匹配的具体实现。
FilteringWebHandler:处理过滤器链执行的主要类。
FilterChainProxy:组织和管理过滤器链的执行顺序。
GatewayFilterFactories:各种内置过滤器工厂的集合,以及如何创建和应用过滤器。
FilteringWebHandler:处理过滤器链执行的主要类。
FilterChainProxy:组织和管理过滤器链的执行顺序。
GatewayFilterFactories:各种内置过滤器工厂的集合,以及如何创建和应用过滤器。
性能
基于WebFlux构建,所以它可以利用Reactor模式和Netty通信框架来提供高并发处理能力
0 条评论
下一页