10. Configuration
Spring Cloud Gateway 的配置由RouteDefinitionLocator实例集合驱动。以下清单显示了RouteDefinitionLocator接口的定义:
示例 64.RouteDefinitionLocator.java
public interface RouteDefinitionLocator {
Flux<RouteDefinition> getRouteDefinitions();
}
默认情况下,PropertiesRouteDefinitionLocator使用 Spring Boot 的@ConfigurationProperties机制加载属性。
早期的配置示例都使用使用位置参数而不是命名参数的快捷表示法。下面两个例子是等价的:
示例 65.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
对于网关的某些用途,属性就足够了,但某些生产用例受益于从外部源(例如数据库)加载配置。未来的里程碑版本将具有RouteDefinitionLocator基于 Spring Data Repositories 的实现,例如 Redis、MongoDB 和 Cassandra。
10.1. 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
。