在使用Spring Cloud Gateway时,需要配置路由,以便将不同的请求转发到不同的服务上。路由配置有两种,一是在配置文件中配置,而是自定义RouteLocator来进行代码配置。当请求到达Spring Cloud Gateway时,会获取所有路由信息,然后通过断言来匹配路由。本文就来分析一下Spring Cloud Gateway是怎么实现路由管理的。
Spring Cloud Gateway是基于Spring WebFlux的,使用了ReactorNetty框架和Netty作为底层服务器的实现。Spring Cloud Gateway和WebFlux的关联点在RoutePredicateHandlerMapping,DispatcherHandler会调用它来获取handler方法。本文就以此为入口点来分析Spring Cloud Gateway的请求处理流程。