【发布时间】:2019-01-21 21:35:58
【问题描述】:
我正在使用 Spring cloud starter gateway 2.0.1.RELEASE 和 Starter netflix hystrix。是否可以像下面这样在路由定义中提供 HystrixCommand?
builder.routes()
.route( r -> r.path("path")
.and().method(HttpMethod.GET)
.filters(f -> f.hystrix("myHystrixCommandName"))
.uri("/destination")
.id("route_1"));
我的目标是在不将请求转发到后备 uri 的情况下执行后备方法。 此外,我不能使用静态后备 uri 选项,因为我需要路径参数和请求参数来确定后备响应。非常感谢任何帮助!。
【问题讨论】:
-
目前还没有构建。为什么不能回退到 uri?在此示例中github.com/spring-cloud-samples/spring-cloud-gateway-sample/… 后备 uri 仅是“forward:/hystrixfallback”。这允许您使用本地 webflux 端点,您可以在其中访问请求参数、标头等...使用自定义命令您无法访问这些内容。
-
感谢@spencergibb 的回复。我无法弄清楚如何访问实际的 URI,因为我有一个作为路径参数的 id。我的路线看起来像 /api/{appid}/users/{userid} 并且我需要能够在转发 URI 中访问 appId 和 userId。我遇到的所有示例都是静态 URI。
-
把
ServerHttpRequest作为参数。这是一个普通的 spring webflux 应用程序。
标签: spring-cloud hystrix spring-cloud-gateway