1.spring cloud gateway整体流程图
2.按照springboot中常见的自动配置策略,主要的配置在GatewayAutoConfiguration中,其中定义了预置的filter以及Predicate,以及还有比较重要的和路由相关的几个类:RouteDefinitionLocator,RouteLocator,WebHandler以及HandlerMapping,其中RouteDefinitionLocator将路由定义导入到了spring容器中,常见的实现类有PropertiesRouteDefinitionLocator(配置文件配置路由),InMemoryRouteDefinitionRepository(通过相关数据接口定义),RouteLocator封装了RouteDefinitionLocator以及相关过滤的gatewayfilter以及Predicate,除了gateway自动配置的(routeDefinitionRouteLocator),也可以自己代码中通过RouteLocatorBuilder来进行配置,gateway中配置的CachingRouteLocator会进入同一引入,WebHandler在gateway中体现为FilteringWebHandler,封装了所有的GlobalFilter,而HandlerMapping在gateway中体现为RoutePredicateHandlerMapping,在这个类中封装了上面的所有相关,请求过来以后,通过封装的RouteLocator找到对应的route,然后交由FilteringWebHandler进行处理,其中的过滤器也会在此时起作用。
暂时只了解到这里,其中Gatewayfilter具体起作用的时机还待分析。
很好的几张图: