问题标签 [spring-cloud-gateway]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
914 浏览

spring-boot - 大型 IP f5 负载均衡器中的 SSE 支持

我正在使用 SSE 向客户端推送通知。我的数据服务的结构如下:

当负载均衡器不在图片中时,我的通知工作正常,但是当我引入 f5 负载均衡器时,它不起作用并且连接中断。

f5 负载均衡器是否支持长寿命的 http 连接?我应该做什么样的配置才能让它工作。

0 投票
0 回答
1477 浏览

java - 用于 Spring Cloud 网关的 HA

有没有办法将 Spring Cloud Gateway 作为集群中的 websocket 网关运行,如果其中一个节点出现故障,其他节点会接管而不会对网关的客户端和代理服务器造成太大干扰?

0 投票
1 回答
1358 浏览

java - Spring Cloud Gateway - 尝试读取 Web 过滤器中的请求正文时请求卡住

我是 Spring Cloud Gateway 的新手(spring boot 2.0.5.RELEASE)。我尝试从 Web 过滤器中读取请求正文,但请求只是卡住了,无法通过链。示例代码:

如果我删除 getBody() 行,一切正常。有什么线索吗?谢谢!

0 投票
2 回答
5709 浏览

java - Spring Cloud Gateway 找不到路由路径(404 错误)

我正在研究 Spring Cloud Gateway 作为专业应用程序的 API 网关解决方案,并且正在运行本教程:http ://spring.io/guides/gs/gateway/#scratch 。

但是我遇到了我无法解决的问题。

这是我的POM

这是Application.java

运行它并尝试点击http://localhost:8080/get给了我一个网关超时。咨询工作中的某个人,我发现我在防火墙后面,需要一个代理。所以我将 Application.java 修改为:

现在,我不再收到网关超时,但现在我收到 404 错误。这是使用 curl http://localhost:8080/get的输出:

我可能错过了一些简单的东西,但我看不到它。

编辑:根据上面列出的教程,这应该是我得到的回复:

0 投票
1 回答
1032 浏览

spring-cloud - 我们如何有条件地路由到 Spring Cloud Gateway 中的不同 URL?有参考样本吗?

尝试有条件地更改交换目标 URL。有没有办法在 Spring Cloud Gateway 中实现这一点?

详细地说,在检查传入请求中的特定 cookie 值时,我想将其路由到不同的 URL。

0 投票
0 回答
367 浏览

java - Spring Cloud Gateway 无法处理带有“==”参数的 Post 请求,如何处理?

我在我的 Spring Cloud 项目中使用 Spring Cloud Gateway 作为 API Gateway

我发现如果一个 post reqeust 带有带有“==”的参数,那么响应将有以下警告:

   

    

服务器日志

��java.lang.IllegalArgumentException: "%7B%22businessType%22:%22ftTranslate%22,%22command%22:%22sentence%22,%22data%22:%20%7B%22origin 中的 QUERY_PARAM 的无效字符 '=' %22:%22zh%22,%22target%22:%22en%22,%22udid%22:%22%22%7D,%22tcl%22:%20%7B%22clientId%22:%221a5bf636-34ca-4aec -8bca-08d2a276ada1%22,%22subSysId%22:9,%22token%22:%22ua_73g+Qkl/nSMb7oPiqiwofOxrWnVp9zXWqMZ2FNT0Yam6Fv5zbQioS3I9+ws7WBPHGF/aVHHpMeC/g7L7BM/xWX/ghCZRLlzwmvDPA7SZnDUlbLOzGyxaXg==%22,%22source%22:%22app%22% 7D,%22version%22:%221.0.0%22%7D" 在 org.springframework.web.util.HierarchicalUriComponents.verifyUriComponent(HierarchicalUriComponents.java:333) ~[spring-web-5.0.7.RELEASE.jar:5.0 .7.RELEASE] 在 org.springframework.web.util.HierarchicalUriComponents.lambda$verify$2(HierarchicalUriComponents.java:301) ~[spring-web-5.0.7.RELEASE.jar:5.0.7。RELEASE] at java.util.Map.forEach(Map.java:630) ~[na:1.8.0_191] at org.springframework.web.util.HierarchicalUriComponents.verify(HierarchicalUriComponents.java:298) ~[spri ng-web -5.0.7.RELEASE.jar:5.0.7.RELEASE] 在 org.springframework.web.util.HierarchicalUriComponents.(HierarchicalUriComponents.java:100) ~[spring-web-5.0.7.RELEASE.jar:5.0.7 .RELEASE] 在 org.springframework.web.util.UriComponentsBuilder.build(UriComponentsBuilder.java:345) ~[spring-web-5.0.7.RELEASE.jar:5.0.7.RELEASE] 在 org.springframework.cloud.gateway .filter.RouteToRequestUrlFilter.filter(RouteToRequestUrlFilter.java:73) ~[spring-cloud-gateway-core-2.0.0.RELEASE.jar:2.0.0.RELEASE] at org.springframework.cloud.gateway.handler.FilteringWebHandler$ GatewayFilterAdapter.filter(FilteringWebHandler.java:133) ~[spring-cloud-gateway-core-2.0.0.RELEASE.jar:2.0.0.RELEASE] at org.springframework.cloud.gateway.filter.OrderedGatewayFilter.filter(OrderedGatewayFilter.java:44) ~[spring-cloud-gateway-core-2.0.0.RELEASE.jar:2.0.0.RELEASE] at org.springframework.cloud.gateway .handler.FilteringWebHandler$DefaultGatewayFilterChain.lambda$filter$0(FilteringWebHandler.java:115) ~[spring-cloud-gateway-core-2.0.0.RELEASE.jar:2.0.0.RELEASE] at reactor.core.publisher.MonoDefer .subscribe(MonoDefer.java:45) ~[reactor-core-3.1.8.RELEASE.jar:3.1.8.RELEASE] 在 reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) ~[reactor- core-3.1.8.RELEASE.jar:3.1.8.RELEASE] 在 reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) ~[reactor-core-3.1.8.RELEASE.jar:3.1.8 .RELEASE] 在 reactor.core.publisher.Mono.subscribe(Mono.java:3080) ~[reactor-core-3.1.8.RELEASE.jar:3.1.8.RELEASE] 在 reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain .排水(MonoIgnoreThen.java:172)~[reactor-core-3.1.8.RELEASE.jar:3.1.8.RELEASE] at reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:56)~[reactor-core -3.1.8.RELEASE.jar:3.1.8.RELEASE] 在 reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) ~[reactor-core-3.1.8.RELEASE.jar:3.1.8. RELEASE] 在 reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:53) ~[reactor-core-3.1.8.RELEASE.jar:3.1.8.RELEASE] 在 reactor.core.publisher.Mono.subscribe( Mono.java:3080) ~[reactor-core-3.1.8.RELEASE.jar:3.1.8.RELEASE] 在 reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.drain(MonoIgnoreThen.java:172) ~[reactor-core -3.1.8.RELEASE.jar:3.1.8.RELEASE] 在 reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:56) ~[reactor-core-3.1.8.RELEASE.jar:3.1.8。 RELEASE] 在 reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:150) ~[reactor-core-3.1.8.RELEASE.jar:3.1.8.RELEASE] 在 reactor.core.publisher.FluxSwitchIfEmpty$SwitchIfEmptySubscriber.onNext(FluxSwitchIfEmpty.java:67) ~[reactor-core-3.1 .8.RELEASE.jar:3.1.8.RELEASE] 在 reactor.core.publisher.MonoNext$NextSubscriber.onNext(MonoNext.java:76) ~[reactor-core-3.1.8.RELEASE.jar:3.1.8. RELEASE] 在 reactor.core.publisher.FluxConcatMap$ConcatMapImmediate.innerNext(FluxConcatMap.java:271) ~[reactor-core-3.1.8.RELEASE.jar:3.1.8.RELEASE] 在 reactor.core.publisher.FluxConcatMap$ ConcatMapInner.onNext(FluxConcatMap.java:803) ~[reactor-core-3.1.8.RELEASE.jar:3.1.8.RELEASE] 在 reactor.core.publisher.FluxMap$MapSubscriber.onNext(FluxMap.java:108) ~ [reactor-core-3.1.8.RELEASE.jar:3.1.8.RELEASE] 在 reactor.core.publisher.FluxSwitchIfEmpty$SwitchIfEmptySubscriber.onNext(FluxSwitchIfEmpty.java:67) ~[reactor-core-3.1.8.RELEASE.jar:3.1.8.RELEASE] 在 reactor.core.publisher.Operators$MonoSubscriber.complete(Operators.java:1083) ~[reactor-core-3.1.8.RELEASE.jar:3.1.8.RELEASE] 在反应堆。 core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:144) ~[reactor-core-3.1.8.RELEASE.jar:3.1.8.RELEASE] at reactor.core.publisher.FluxMap$MapSubscriber.onNext(FluxMap .java:108) ~[reactor-core-3.1.8.RELEASE.jar:3.1.8.RELEASE] 在 reactor.core.publisher.MonoNext$NextSubscriber.onNext(MonoNext.java:76) ~[reactor-core- 3.1.8.RELEASE.jar:3.1.8.RELEASE] 在 reactor.core.publisher.FluxFilterWhen$FluxFilterWhenSubscriber.drain(FluxFilterWhen.java:262) ~[reactor-core-3.1.8.RELEASE.jar:3.1.8 .RELEASE] 在 reactor.core.publisher.FluxFilterWhen$FluxFilterWhenSubscriber.onNext(FluxFilterWhen.java:131) ~[reactor-core-3.1.8.RELEASE.jar:3.1.8.RELEASE] 在 reactor.core.publisher.DrainUtils .postCompleteDrainDelayError(DrainUtils.java:296) ~[reactor-core-3.1.8.RELEASE.jar:3.1.8.RELEASE] 在 reactor.core.publisher.DrainUtils.postCompleteDelayError(DrainUtils.java:357) ~[reactor-core -3.1.8.RELEASE.jar:3.1.8.RELEASE] 在 reactor.core.publisher.FluxDematerialize$DematerializeSubscriber.onComplete(FluxDematerialize.java:144) ~[reactor-core-3.1.8.RELEASE.jar:3.1。 8.RELEASE] 在 reactor.core.publisher.FluxDematerialize$DematerializeSubscriber.onNext(FluxDematerialize.java:102) ~[reactor-core-3.1.8.RELEASE.jar:3.1.8.RELEASE] 在 reactor.core.publisher。 FluxDematerialize$DematerializeSubscriber.onNext(FluxDematerialize.java:42) ~[reactor-core-3.1.8.RELEASE.jar:3.1.8.RELEASE] at reactor.core.publisher.FluxFlattenIterable$FlattenIterableSubscriber.drainAsync(FluxFlattenIterable.java:391 ) ~[reactor-core-3.1.8.RELEASE.jar:3.1.8.RELEASE] 在reactor.core。普

如何处理?谢谢

0 投票
2 回答
13641 浏览

spring - Spring Cloud Gateway 上的 CORS 配置问题

我正在尝试使用 Spring Cloud Gateway 构建网关代理。

我可以使用 Spring Cloud 中的 RouteLocator 将我的请求路由到相应的服务。但我无法为通过 RouteLocator 路由的路径配置 CORS。

我尝试了 Spring Cloud 文档中提到的所有可能性。

我在网页中遇到以下错误: 在此处输入图像描述

我的代码看起来像 Application.java

应用程序.yml

构建.gradle

0 投票
1 回答
457 浏览

java - spring-cloud-gateway:java.lang.IndexOutOfBoundsException

当我使用 spring-cloud-gateway 时,产生以下错误:

这是问题源代码:

我想这可能是由于并发性,但我不知道这是怎么发生的。我想知道这是怎么发生的,或者还有其他可能的原因导致这个问题发生。

0 投票
1 回答
3599 浏览

spring - spring cloud gateway 全局异常处理/日志

我有一个 spring 云网关应用程序,它充当我的数据服务的网关。我的应用程序使用 SSE 在 UI 中推送通知。当我看到网关的日志时,我的日志中充满了以下异常:

我有一个错误处理程序类:

但它仍在记录错误。如何让我的网关不写日志。

我的pom文件是:

我的依赖树:

0 投票
1 回答
5914 浏览

spring-cloud-gateway - Spring Cloud Gateway 匹配多个路径元素

Spring Cloud Greenwichspring-cloud-netflix-zuul进入维护模式,所以我正在尝试从 Zuul 迁移到 Spring Cloud Gateway。

使用 Zuul,我有一条类似的路线

我在那里所做的基本上是忽略masterplan接收路径中之前或之后的所有内容并重定向到api-masterplan. 例如,两者/some/path/to/masterplans/masterplans使用同一个 api(原因是masterplans更大实体的子资源,它负责创建新的masterplans,但随后masterplans可以被视为完整的资源,用于诸如GET细节、更新、删除等目的)。

我可以将此配置映射到 Spring Cloud Gateway 吗?查看predicates,可行的似乎是path predicate,但看起来所有匹配器都在单个路径元素上工作(除了WildcardTheRestPathElement,但它只能用作最后一个元素 - 我认为),即:我需要写就像是

我是否遗漏了一些东西,这两条路径可以浓缩成一条吗?