gateway源码分析
2020-07-07 13:50:58 0 举报
gateway 源码流程图
作者其他创作
大纲/内容
需要执行的过滤器
RoutePredicateHandlerMapping.getHandlerInternal
return chain.filter(exchange)
DiscoveryClientRouteDefinitionLocator.getRouteDefinitions
routeDefinitionLocator.getRouteDefinitions()
RouteDefinitionRouteLocator.lookupRoute.getRoutes
LoadBalancerClientFilter
FilteringWebHandler.handle
核心实现
filter
配置文件初始化
webHandler.handle(exchange)
限流逻辑
我们看看负载均衡的过滤器
代码入口
this.routeLocator.getRoutes()
public GatewayFilter apply(Config config)
通过Ribbon选择一个服务,这块之前再看Ribbon时,流程图已经画过。
DefaultGatewayFilterChain.filter
初始化
替换host为ribbon选择好的一个ip
继续执行调用链
加入gateway过滤器
初始化负载均衡器
SimpleHandlerAdapter.handle
handle
DispatcherHandler
lookupRoute(exchange)
RedisRateLimiter.isAllowed
从配置文件中获取配置
choose(exchange)
getHandlerInternal
return Flux.fromIterable(discoveryClient.getServices())
依次执行过滤器
保存url条
RequestRateLimiterGatewayFilterFactory requestRateLimiterGatewayFilterFactory
mapping.getHandler(exchange)
GatewayAutoConfiguration
0 条评论
下一页