自定义Spring Zuul动态路径

时间:2019-03-08 22:58:09

标签: spring spring-boot netflix-zuul

我有一个Spring Boot应用程序,它利用Zuul对多个微服务进行反向代理路由。以前,我们使用Apache,它可以说明所需的主机。

我的伪配置:

zuul:
  routes:
    app1:
      path: /path/conflict/**
      url: https://microservice1.mydomain.com/
    app2:
      ## only route for certain hosts!
      path: /path/conflict/**
      url: https://microservice2.mydomain.com/ 

很显然,这是无效的配置,因为与pathapp1两者都有app2冲突。我希望路由以源主机为条件-以前,我们能够使用Apache做到这一点。

我怀疑有一种方法可以通过Spring Zuul来实现,因为Spring中的模式是要覆盖您想要的东西,但是我不确定确切需要覆盖/配置什么。

如何实现动态路由(特别是对于入站主机)?

1 个答案:

答案 0 :(得分:0)

您是否正在使用尤里卡进行发现?

如果是这样,则无需指定通往任何动态服务的路由。

例如,如果您在server.port=0上有application.properties的服务,则eureka将为每个新实例分配一个随机端口。因此,可以说您的服务名称是用户服务,在实例化它时,eureka将其分配给端口40000(例如)。

因此,当客户端使用网关API时,它将查找以下内容:http://localhost:8080/user-service/...。该服务由URL上的用户服务标识,它是在运行时创建的,您无需在任何.yml.properties文件中编写此规则。