(48)春の雲マイクロサービスアーキテクチャB2B2C電子商取引-SpringCloudゲートウェイ

3536247259:ソースの電子商取引プラットフォームペンギンBEGを追加してください。SpringCloudゲートウェイでは、ルーティングロケータの役割は、我々はSpringCloudゲートウェイ、それがどのように動作するか、ルーティングロケータでは、ソースコードを見て、接続要求を見つけることです。

、RouteLocator
CachingRouteLocator、CompositeRouteLocator、RouteDefinitionRouteLocator含むSpringCloudゲートウェイロケータ経路は、それらの関係は、GatewayAutoConfigurationコードから見ることができます

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がCompositeRouteLocator、CompositeRouteLocatorはRouteDefinitionRouteLocatorタイプが含ま含まれ、要求がルートエントリタイプにわたって取得さCachingRouteLocatorのgetRoutes方法です。同時に、このタイプは、キャッシュをフラッシュし、ZKノード変更イベントをリスニングサポートしています

二、RouteDefinitionLocator

RouteDefinitionRouteLocator測位データをRouteDefinition RouteDefinitionLocatorロケータの定義によって取得されます。

DiscoveryClientRouteDefinitionLocator、DiscoveryClientRoutDefinitionRepository、PropertiesRouteDefinitionLocator:RouteDefinitionLocatorの3つのタイプがあります。

前記、DiscoveryClientRouteDefinitionLocatorロケータを使用DiscoveryClientRoutDefinitionRepositoryは、レジストリからルーティング情報を得ることで、PropertiesRouteDefinitionLocatorは、構成ファイルから情報をルーティングされます。

おすすめ

転載: blog.csdn.net/wiyzq/article/details/91360238