Zuul代理动态发现路由

时间:2017-05-02 20:47:18

标签: spring spring-boot swagger netflix-zuul

我有一个简单的Zuul应用程序,它在application.yml中有一条路由可以路由到我的微服务。它正在工作。

然而,我正在寻找的是一个更动态的解决方案,我可以通过代码或者在构建期间通过POST到一些Zuul端点动态地连接路由(可能通过使用springfox和来自的swagger定义)微服务)。我找不到Zuul的API。

我有点意识到Eureka,这似乎是通过发现来抽象路由的解决方案。但是,如果没有引入Eureka的解决方案,我很好奇。如果有一种方法可以在构建期间在Zuul中连接这些路由,而不必每次都编辑application.yml。

提前致谢。

2 个答案:

答案 0 :(得分:3)

如果你去Eureka,这将实际工作ootb。在Spring云中打包的Zuul将使用其名称自动公开每个服务。因此,如果您在Eureka中注册名为users的服务,Zuul将默认自动创建路由/users转发到实例。这只会允许简单的url结构,但应解决你的问题。

有关详细信息,请参阅official documentation

  

按照惯例,具有ID“users”的服务将从位于/ users的代理接收请求(带有前缀剥离)。代理使用功能区定位要通过发现转发的实例,所有请求都在hystrix命令中执行,...

答案 1 :(得分:0)

我实际上正在编辑关于这个确切主题的博客文章(使用Spring Cloud Zuul Server进行路由和过滤),但源代码已经可用并且已经工作了一段时间。随意使用它作为参考:

查看可刷新的Spring个人资料设置。此Zuul设置适用于硬编码路径网址或使用Eureka发现的网址。

它还充当Spring Cloud Config客户端,以便可以通过Git动态更新路由,这也包含在另一篇博文中:Refreshable Configuration using Spring Cloud Config Server, Spring Cloud Bus, RabbitMQ and Git