如何在Spring Cloud Zuul中配置路由

时间:2016-02-23 20:45:36

标签: java spring spring-boot reload netflix-zuul

在Spring Cloud Zuul服务器中,我们可以通过“application.properties”定义所有需要重定向的路由。

例如:

zuul.routes.resource.path=/api/**
zuul.routes.resource.url=http://api.com:9025

创建fat jar后,“application.properties”被封装到jar中,无法编辑和重新加载文件中的规则。

有没有通知Zuul外部文件中的路由,同时在不停止服务器的情况下重新加载它们?

3 个答案:

答案 0 :(得分:3)

您可以使用spring cloud配置。

Spring Cloud Config为分布式系统中的外部化配置提供服务器和客户端支持。使用Config Server,您可以在中央位置管理所有环境中的应用程序的外部属性

http://cloud.spring.io/spring-cloud-config/spring-cloud-config.html#_spring_cloud_config_client

答案 1 :(得分:2)

......派对有点晚了,但是......

您可以使用ConfigServer完成所需的一切!

  1. 为所有应用程序中通用的配置创建application.yml
  2. 创建特定于配置文件的应用程序-mycommonprofile.yml。作为1.但是对于mycommonprofile'轮廓。
  3. 为每个特定于该应用程序的应用程序创建一个appX.yml。
  4. 创建特定于配置文件的appX-myprofile.yml。作为3.但对于myprofile'轮廓。
  5. 所有这些文件都是可选的,不依赖于任何其他文件。例如,您可以使用application-mycommonprofile.yml而不使用application.yml。

    希望有所帮助!

答案 2 :(得分:0)

另一个迟到的回答,但另一种方法是使用配置文件配置文件,它位于fatjar之外的文件系统中。

如果您的Zuul代理的配置名称是'zuul'而您的普通配置文件是'zuul.properties'或'zuul.yaml',那么它会在'zuul-.properties'中查找特定于配置文件的配置文件或'zuul-.yaml'。 如果未指定配置文件,则名为“default”的配置文件处于活动状态。

因此,您可以从外部文件名'zuul-default.properties'或'zuul-default.yaml'(或'zuul-default.yml',如果您使用3个字母的文件扩展名)加载属性。 然后在没有指定其他配置文件时加载。