(Thirty-six) java version of spring cloud micro Services Architecture b2b2c e-commerce platform -SpringCloud Gateway

In SpringCloud Gateway, the routing locator role is to find the connection request, we look through the source code, in SpringCloud Gateway, the routing locator how it works.

A, RouteLocator
SpringCloud Gateway Locator route, including CachingRouteLocator, CompositeRouteLocator, RouteDefinitionRouteLocator, their relationship can be seen from GatewayAutoConfiguration code,

public RouteLocator routeDefinitionRouteLocator(GatewayProperties properties,
                                   List<GatewayFilterFactory> GatewayFilters,
                                   List<RoutePredicateFactory> predicates,
                                   RouteDefinitionLocator routeDefinitionLocator) {
  return new RouteDefinitionRouteLocator(routeDefinitionLocator, predicates, GatewayFilters, properties);
}
@Bean
@Primary
//TODO: property to disable composite?
public RouteLocator cachedCompositeRouteLocator(List<RouteLocator> routeLocators) {
  return new CachingRouteLocator(new CompositeRouteLocator(Flux.fromIterable(routeLocators)));
}

CachingRouteLocator is included CompositeRouteLocator, CompositeRouteLocator contains RouteDefinitionRouteLocator type, a request is acquired over Route entry type is getRoutes method of CachingRouteLocator. At the same time this type also supports listening zk node change events, flush the cache

二、RouteDefinitionLocator

RouteDefinitionRouteLocator the positioning data is acquired by the definition of RouteDefinition RouteDefinitionLocator locator.

There are three types of RouteDefinitionLocator: DiscoveryClientRouteDefinitionLocator, DiscoveryClientRoutDefinitionRepository, PropertiesRouteDefinitionLocator.

Wherein, DiscoveryClientRoutDefinitionRepository using DiscoveryClientRouteDefinitionLocator locator, is to obtain the routing information from the registry, PropertiesRouteDefinitionLocator is routing information from the configuration file.

Guess you like

Origin blog.csdn.net/vvx0206/article/details/93965417