使用eureka服务时的Zuul Routing
Zuul Routing when using eureka services
我有一个相当简单的 Spring Cloud Netflix 设置。我们使用 Zuul 作为反向代理,使用 Eureka 进行服务发现和注册。我们有我们正在慢慢扼杀的遗留服务。我们有许多简单的服务,它们的端点配置如下:
{host}:{port}/{service-name}/**
所以现在当每个服务都注册到 eureka 并随后将路由添加到 Zuul 时,zuul 端点如下所示:
{zuul-host}:{zuul-port}/{service-name}/{service-name}/**
我想阻止 Zuul 从 eureka 服务的路由 URI 中剥离前缀,以便我的 zuul 端点如下所示:
{zuul-host}:{zuul-port}/{service-name}/**
并转发至:
{zuul-host}:{zuul-port}/{service-name}/**
我希望这样做的方式使我不必为每项服务添加配置。
我原以为 zuul.strip-prefix
会成功,但事实并非如此。
当前 Zuul application.yml:
zuul:
routes:
oldservice:
path: /oldservice/**
url: http://oldservice-host:9080/api/v1/oldservice
strip-prefix: false
eureka:
client:
serviceUrl:
defaultZone: http://eureka-host:8761/eureka/
有人对我如何以这种方式配置 zuul 有建议吗?
既然你正在用 eureka 注册你的服务,为什么不像下面那样使用 service-id 进行路由。
service-id 是您的服务在 Eureka 中注册的 ID。
zuul:
routes:
path: /oldservice/**
service-id: oldservice
strip-prefix: false
eureka:
client:
serviceUrl:
defaultZone: http://eureka-host:8761/eureka/
对于您当前的情况,我将 strip-prefix 移动到路由中,我的系统中有它,您可以试试。
zuul:
routes:
oldservice:
path: /oldservice/**
url: http://oldservice-host:9080/api/v1/oldservice
strip-prefix: false
eureka:
client:
serviceUrl:
defaultZone: http://eureka-host:8761/eureka/
我有一个相当简单的 Spring Cloud Netflix 设置。我们使用 Zuul 作为反向代理,使用 Eureka 进行服务发现和注册。我们有我们正在慢慢扼杀的遗留服务。我们有许多简单的服务,它们的端点配置如下:
{host}:{port}/{service-name}/**
所以现在当每个服务都注册到 eureka 并随后将路由添加到 Zuul 时,zuul 端点如下所示:
{zuul-host}:{zuul-port}/{service-name}/{service-name}/**
我想阻止 Zuul 从 eureka 服务的路由 URI 中剥离前缀,以便我的 zuul 端点如下所示:
{zuul-host}:{zuul-port}/{service-name}/**
并转发至:
{zuul-host}:{zuul-port}/{service-name}/**
我希望这样做的方式使我不必为每项服务添加配置。
我原以为 zuul.strip-prefix
会成功,但事实并非如此。
当前 Zuul application.yml:
zuul:
routes:
oldservice:
path: /oldservice/**
url: http://oldservice-host:9080/api/v1/oldservice
strip-prefix: false
eureka:
client:
serviceUrl:
defaultZone: http://eureka-host:8761/eureka/
有人对我如何以这种方式配置 zuul 有建议吗?
既然你正在用 eureka 注册你的服务,为什么不像下面那样使用 service-id 进行路由。 service-id 是您的服务在 Eureka 中注册的 ID。
zuul:
routes:
path: /oldservice/**
service-id: oldservice
strip-prefix: false
eureka:
client:
serviceUrl:
defaultZone: http://eureka-host:8761/eureka/
对于您当前的情况,我将 strip-prefix 移动到路由中,我的系统中有它,您可以试试。
zuul:
routes:
oldservice:
path: /oldservice/**
url: http://oldservice-host:9080/api/v1/oldservice
strip-prefix: false
eureka:
client:
serviceUrl:
defaultZone: http://eureka-host:8761/eureka/