Zuul并将URL路径转发到另一个URL路径

时间:2019-01-17 08:45:27

标签: java spring-boot netflix-zuul api-gateway

我使用 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配置进行转发完成(就我使用服务发现而言)?

1 个答案:

答案 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