Spring Cloud Gateway路由元信息作用及路由超时配置详解( 二 )


默认情况下 , 网关为使用DiscoveryClient创建的路由定义一个谓词和筛选器 。
默认谓词是使用模式/serviceId/**定义的路径谓词 , 其中serviceId是DiscoveryClient中服务的ID(注册中心注册的服务名称 , 主要就是spring.application.name) 。
默认的过滤器是重写路径过滤器 , regex /serviceId/?(?<remaining> .*)和替换的/${remaining} 。这将在请求发送到下游之前从路径中剥离服务ID 。
如果你想自定义DiscoveryClient路由使用的谓词或过滤器 , 请设置
spring.cloud.gateway.discovery.locator.predicates[x]和
spring.cloud.gateway.discovery.locator.filters[y] 。这样做时 , 如果你希望保留该功能 , 则需要确保包含前面所示的默认谓词和过滤器 。下面的例子展示了它的样子:
spring.cloud.gateway.discovery.locator.predicates[0].name: Pathspring.cloud.gateway.discovery.locator.predicates[0].args[pattern]: "'/'+serviceId+'/**'"spring.cloud.gateway.discovery.locator.predicates[1].name: Hostspring.cloud.gateway.discovery.locator.predicates[1].args[pattern]: "'**.foo.com'"spring.cloud.gateway.discovery.locator.filters[0].name: CircuitBreakerspring.cloud.gateway.discovery.locator.filters[0].args[name]: serviceIdspring.cloud.gateway.discovery.locator.filters[1].name: RewritePathspring.cloud.gateway.discovery.locator.filters[1].args[regexp]: "'/' + serviceId + '/?(?<remaining>.*)'"spring.cloud.gateway.discovery.locator.filters[1].args[replacement]: "'/${remaining}'"完毕!!!

【Spring Cloud Gateway路由元信息作用及路由超时配置详解】


推荐阅读