配置

Spring Cloud Gateway 的配置由一系列 RouteDefinitionLocator 实例驱动。以下列表显示了 RouteDefinitionLocator 接口的定义

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

默认情况下,PropertiesRouteDefinitionLocator 使用 Spring Boot 的 @ConfigurationProperties 机制加载属性。

前面的配置示例都使用了快捷方式表示法,该表示法使用位置参数而不是命名参数。以下两个示例是等效的

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

对于网关的某些用法,属性是足够的,但一些生产用例受益于从外部源(例如数据库)加载配置。未来的里程碑版本将提供基于 Spring Data Repositories(例如 Redis、MongoDB 和 Cassandra)的 RouteDefinitionLocator 实现。

路由定义指标

要启用 RouteDefinition 指标,请将 spring-boot-starter-actuator 添加为项目依赖项。然后,默认情况下,只要将属性 spring.cloud.gateway.metrics.enabled 设置为 true,指标就可用。将添加一个名为 spring.cloud.gateway.routes.count 的 Gauge 指标,其值为 RouteDefinitions 的数量。此指标将通过 /actuator/metrics/spring.cloud.gateway.routes.count 获取。

© . This site is unofficial and not affiliated with VMware.