首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用eureka服务时的Zuul路由

使用eureka服务时的Zuul路由
EN

Stack Overflow用户
提问于 2016-08-16 23:13:53
回答 1查看 5K关注 0票数 0

我有一个相当简单的Spring Cloud Netflix设置。我们使用Zuul作为反向代理,使用Eureka进行服务发现和注册。我们有一些遗留的服务,我们正在慢慢地将其淘汰。我们有许多简单的服务,它们的端点配置如下:

代码语言:javascript
复制
{host}:{port}/{service-name}/**

因此,现在当每个服务注册到eureka,并随后将路由添加到Zuul时,zuul端点看起来如下所示:

代码语言:javascript
复制
{zuul-host}:{zuul-port}/{service-name}/{service-name}/**

我想阻止Zuul从eureka服务的路由URI中去掉前缀,这样我的zuul端点看起来就像这样:

代码语言:javascript
复制
{zuul-host}:{zuul-port}/{service-name}/**

并转发至:

代码语言:javascript
复制
{zuul-host}:{zuul-port}/{service-name}/** 

我希望这是这样做的方式,我不必添加每个服务的配置。

我本以为zuul.strip-prefix已经完成了这项工作,但事实似乎并非如此。

当前Zuul application.yml:

代码语言:javascript
复制
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有建议?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-08-20 04:14:52

既然您正在向eureka注册您的服务,为什么不使用service-id进行路由,如下所示。service-id是您的服务在Eureka中注册时使用的id。

代码语言:javascript
复制
zuul:
  routes:
     path: /oldservice/**
     service-id: oldservice
     strip-prefix: false
eureka:
  client:
    serviceUrl:
      defaultZone: http://eureka-host:8761/eureka/

对于您当前的场景,我将strip前缀移到了路由中,我在我的系统中就是这样,您可以尝试这样做。

代码语言:javascript
复制
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/
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38978552

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档