我使用 spring zuul 来管理API_Gateway。但是我有一个基本问题,无法将请求转发到特定路径。我的服务中存在多个不可更改的地址,我将从一个特定的地址转发。我更喜欢不使用“ Zuulfilter”,但使用它没有用。
用户请求:(可以)
浏览器请求:gateway.com/api1/user→网关→apihost.com/api1/user
大摇大摆的请求:(失败)
浏览器请求:gateway.com/api1/swagger→网关→apihost.com/swagger-ui.html
我使用service_discovery(eureka),并且我的 application.yml 文件配置为:
Zuul:
routes:
swagger:
path: /api1/swagger
service_id: api1
url: forward:/swagger-ui.html#/
users:
path: /api1/user/**
service_id: api1
stripPrefix: false
但是我在调试模式下看到:
2019-01-17 11:28:46.437 DEBUG 77407 --- [nio-8181-exec-4] s.b.a.e.w.s.WebMvcEndpointHandlerMapping : Did not find handler method for [/swagger-ui.html#/api1/swagger]
2019-01-17 11:28:46.437 DEBUG 77407 --- [nio-8181-exec-4] a.e.w.s.ControllerEndpointHandlerMapping : Looking up handler method for path /swagger-ui.html#/api1/swagger
2019-01-17 11:28:46.437 DEBUG 77407 --- [nio-8181-exec-4] a.e.w.s.ControllerEndpointHandlerMapping : Did not find handler method for [/swagger-ui.html#/api1/swagger]
我还添加了一个路由过滤器(Zuulfilter),用于直接从服务中调用地址,但响应有所不同。如果不存在用于开发servlet过滤器的示例代码,该使用反正使用Zuul配置进行转发完成(就我使用服务发现而言)?
答案 0 :(得分:0)
我的朋友Eureka用于服务发现,Zuul是API门。 在Zuul客户端中,如下所示在application.yaml中添加配置。
尝试这种方式:-
library(data.table)
setDT(df)[, V2 := replace(V2, .N, first(V1)), rleid(V3)]
df
# V1 V2 V3
#1: 1 2 1
#2: 2 3 1
#3: 3 4 1
#4: 4 1 1
#5: 5 6 2
#6: 6 7 2
#7: 7 5 2
#8: 9 10 3
#9: 10 9 3