我有一个简单的Zuul应用程序,它在application.yml中有一条路由可以路由到我的微服务。它正在工作。
然而,我正在寻找的是一个更动态的解决方案,我可以通过代码或者在构建期间通过POST到一些Zuul端点动态地连接路由(可能通过使用springfox和来自的swagger定义)微服务)。我找不到Zuul的API。
我有点意识到Eureka,这似乎是通过发现来抽象路由的解决方案。但是,如果没有引入Eureka的解决方案,我很好奇。如果有一种方法可以在构建期间在Zuul中连接这些路由,而不必每次都编辑application.yml。
提前致谢。
答案 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。