10. 配置

Spring Cloud Gateway 的配置由以下集合驱动RouteDefinitionLocator实例。 以下列表显示了RouteDefinitionLocator接口:spring-doc.cadn.net.cn

实施例 66. RouteDefinitionLocator.java
public interface RouteDefinitionLocator {
    Flux<RouteDefinition> getRouteDefinitions();
}

默认情况下,一个PropertiesRouteDefinitionLocatorloads 属性,使用 Spring Boot 的@ConfigurationProperties机制。spring-doc.cadn.net.cn

前面的配置示例都使用使用位置参数而不是命名参数的快捷方式表示法。以下两个示例是等效的:spring-doc.cadn.net.cn

实施例 67. 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)的实现。spring-doc.cadn.net.cn

10.1. RouteDefinition 指标

启用RouteDefinitionmetrics,将 spring-boot-starter-actuator 添加为项目依赖项。然后,默认情况下,只要属性spring.cloud.gateway.metrics.enabled设置为true. 名为spring.cloud.gateway.routes.count将被添加,其值是RouteDefinitions. 此指标可从/actuator/metrics/spring.cloud.gateway.routes.count.spring-doc.cadn.net.cn