功能区 - 从Eureka获取的网址中调用特定的应用程序uri

时间:2018-01-31 04:39:16

标签: spring-cloud netflix-eureka netflix-zuul spring-cloud-netflix netflix-ribbon

让我们考虑以下情况。此示例仅包含包含localhost的url。我有一个zuul代理设置,让我们说它在端口8080上运行。所以

   Zuul proxy-
  localhost:8080

我在端口81上运行了一个eureka服务器设置。

 Eureka server-
localhost:8081.

我有一个应用程序可以通过名称示例调用它,这是一个REST Web服务。它在3个不同的端口82,83和84上运行。所有3个实例都在eureka服务器上注册。我在zuul中为uri / example设置了一个过滤器。

所以我希望消费者在locahost上调用zuul代理:8080 / example。

现在,在请求映射/示例的应用示例中,有一个控制器设置。

所以我想要做的就是让消费者调用localhost:8080 / example并将该请求路由到localhost:8082 / example,localhost:8083 / example,localhost:8084 / example。我知道如何使用ribbon和eureka进行负载平衡,并设置所有适当的属性来实现这一目标。

         zuul.routes.example.serviceid=example

         ribbon.eureka.enabled=true.

我想做的是让功能区从eureka服务器查找url(s)列表,然后调用localhost:8082 / example而不是localhost:8082。

这可能吗?

提前谢谢。

1 个答案:

答案 0 :(得分:1)

您需要指定path& serviceId

zuul:
    routes:
        examplepath:
           path: /example/**
           serviceId: name-example
           stripPrefix: false

serviceId是在Eureka注册的名称。希望您在Zuul网关中指定Eureka服务器详细信息。