構成

Spring Cloud Gateway の構成は、RouteDefinitionLocator インスタンスのコレクションによって駆動されます。次のリストは、RouteDefinitionLocator インターフェースの定義を示しています。

RouteDefinitionLocator.java
public interface RouteDefinitionLocator {
	Flux<RouteDefinition> getRouteDefinitions();
}

デフォルトでは、PropertiesRouteDefinitionLocator は Spring Boot の @ConfigurationProperties メカニズムを使用してプロパティをロードします。

以前の構成例はすべて、名前付き引数ではなく位置引数を使用するショートカット表記を使用しています。次の 2 つの例は同等です。

application.yml
spring:
  cloud:
    gateway:
      routes:
      - id: setstatus_route
        uri: https://example.org
        filters:
        - name: SetStatus
          args:
            status: 401
      - id: setstatusshortcut_route
        uri: https://example.org
        filters:
        - SetStatus=401

ゲートウェイの一部の使用箇所では、プロパティは適切ですが、一部の本番ユースケースでは、データベースなどの外部ソースから構成をロードすることでメリットが得られます。将来のマイルストーンバージョンには、Redis、MongoDB、Cassandra などの Spring Data リポジトリに基づく RouteDefinitionLocator 実装が含まれる予定です。

RouteDefinition メトリクス

RouteDefinition メトリクスを有効にするには、プロジェクトの依存関係として spring-boot-starter-actuator を追加します。次に、デフォルトでは、プロパティ spring.cloud.gateway.metrics.enabled が true に設定されている限り、メトリクスが使用可能になります。spring.cloud.gateway.routes.count という名前のゲージメトリクスが追加されます。その値は RouteDefinitions の数です。このメトリクスは、/actuator/metrics/spring.cloud.gateway.routes.count から入手できます。