当前位置: 首页 > 知识库问答 >
问题:

使用eureka服务时的Zuul路由

仰经武
2023-03-14

我有一个相当简单的Spring CloudNetflix设置。我们使用Zuul作为反向代理,Eureka用于服务发现和注册。我们有我们正在慢慢窒息的遗留服务。我们有许多简单的服务,其endpoint配置如下:

{host}:{port}/{service-name}/**

因此,现在当每个服务都在eureka注册并随后向Zuul添加路由时,zuul终结点如下所示:

{zuul-host}:{zuul-port}/{service-name}/{service-name}/**

我想阻止Zuul将前缀从eureka服务的路由URI中剥离,以便我的Zuulendpoint如下所示:

{zuul-host}:{zuul-port}/{service-name}/**

并转发到:

{zuul-host}:{zuul-port}/{service-name}/** 

我希望以这样一种方式完成,即我不必为每个服务添加配置。

我本以为zuul.strip前缀可以做到这一点,但事实似乎并非如此。

目前Zuulapplication.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有建议吗?

共有1个答案

公冶子琪
2023-03-14

既然你在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/

对于您当前的场景,我在路线中移动了条带前缀,在我的系统中,您可以尝试这样做。

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 boot微服务,它们是通过云环境部署到JBoss的。这些引导服务是在Eureka服务器中注册自己的Eureka客户端。下面是一个例子: 它用user-regn-service-app Eureka主页的名称向Eureka注册应用程序 wildfly服务器在8080处运行,而user-regn-service-app部署在上下文路径/user-regn-service-ap

  • 我们在我们的环境中使用Spring Cloud Netflix Zuul和Eureka。 我知道Ribbon从Eureka获取指定serviceId的服务器列表。在我们的例子中,我们有4个服务容器,其中一个容器是执行资源密集型任务的主容器。我想从服务器列表中过滤掉主容器,这样Ribbon就不会向容器转发任何请求。 如何过滤? 任何帮助都很感激。

  • 我正在尝试使用spring和spring cloud开发一个spring cloud微服务。我想在AWS弹性Beanstalk中部署我的微服务应用程序。我怀疑在我的微服务中包含Spring云工具。 当我使用弹性beanstalk帐户时,弹性beanstalk是否像spring cloud Zuul一样提供服务发现和路由,还是我需要用我的微服务实现来实现这些? 当我在探索Spring cloud微服

  • 我正在开发一个微服务,我正在尝试使用Zuul代理来路由这些服务。但由于某些原因,Zuul无法路由到在eureka注册的应用程序。我尝试过增加hystrix和Zuul超时,但没有效果 引发异常 通用域名格式。netflix。祖尔。例外ZuuleException:组织转发错误。springframework。云netflix。祖尔。过滤器。路线带状路由过滤器。handleException(Ribb

  • 我正在创建一个由3个(服务a、服务B和服务C)微服务组成的示例。所有3项服务以及网关服务(zuul)都在eureka注册。我的用例是: 1) 所有请求都将通过网关服务进入系统——正常工作 2) 对于每个针对服务C的请求,网关服务应该首先调用服务A来执行某些操作。当服务A做出肯定响应时,请求应该被转发到服务B。一旦服务A和服务B都做出肯定响应,请求最终应该被转发到服务C。 我想使用zuul路由过滤器

  • 我正在尝试建立一个基于Spring功能的简单微服务架构。我有3个简单的微服务作为起点:1配置服务器(Spring cloud config)2发现服务器(eureka Server)3网关Zuul 我配置了这些服务,以便发现服务器存储所有的.properties文件,它将自己注册到发现服务器,以便所有其他服务检索.properties文件,而不是通过静态url而是通过eureka服务器访问发现。