深入了解Spring Cloud Gateway源码与脑图分析
Spring Cloud Gateway采用了Spring WebFlux非阻塞网络框架,底层网络实现默认采用高性能的非阻塞Netty Server,完全解决了Spring Cloud Zuul由于阻塞线程模型导致性能下降的问题。Gateway本身是一个基于Spring Boot的应用,负责根据配置的路由进行请求的预处理和转发。在Gateway中有几个核心概念:Route(路由):每个Route由路由ID、转发URI、多个Predicates(条件)以及多个Filters(过滤器)构成。Gateway上可以配置多个Routes,处理请求时按优先级排序,找到第一个满足所有Predicates的Route进行处理。Predicate(条件):用于路由匹配的条件,可以匹配请求的各种属性,如请求路径、方法、header等。一个Route可以包含多个子Predicates,最终合并成一个条件。Filter(过滤器):包含了处理请求和响应逻辑的模块,分为pre和post两个阶段,多个Filter在pre阶段按优先级执行。