配置
Spring Cloud Gateway 的配置由一组 RouteDefinitionLocator 实例驱动。以下清单展示了 RouteDefinitionLocator 接口的定义:
public interface RouteDefinitionLocator {
Flux<RouteDefinition> getRouteDefinitions();
}
默认情况下,PropertiesRouteDefinitionLocator 通过使用 Spring Boot 的 @ConfigurationProperties 机制来加载属性。
之前的配置示例都使用了快捷表示法,即使用位置参数而非命名参数。以下两个示例是等价的:
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的RouteDefinitionLocator实现,例如Redis、MongoDB和Cassandra。
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 获取。