Spring Cloud Zuul/Eureka动态路由

12

我使用Spring Cloud Eureka和Spring Cloud Zuul代理,想知道是否有办法在Eureka服务器注册新服务时添加动态Zuul路由,或者唯一的方法是编辑application.yml文件并重新启动Spring Zuul应用程序。

zuul:
  ignoredPatterns: /**/admin/**
  routes:
    users: /myusers/**

那是一个很酷的东西,但我不认为目前有类似的东西。 - Grinish Nepal
1个回答

24
如果您的Zuul服务器也是EurekaClient(使用@EnableDiscoveryClient注释),它将发现所有服务并自动创建路由。
例如,Zuul服务器是zuul.mydomain.com, Eureka注册了两个服务:订单和账户
然后Zuul将自动拥有两个路由 Zuul.mydomain.com/orders和Zuul.mydomain.com/accounts
这将转发到特定的服务。如果服务运行在多台机器上,它还将自动为您平衡负载调用。

谢谢,我在我的Zuul类中添加了@EnableDiscoveryClient,所有来自Eureka的服务都被发现并具有自动路由。 - alfespa17
2
我很喜欢它: ),使用它来尝试微服务非常简单,现在我只用几行代码就有eureka、zuul和两个微服务在运行,接下来我会加入spring cloud hystrix,cloud config和cloud bus。 - alfespa17
@vladsfl,有没有办法控制路由?例如如何将服务订单映射到Zuul.mydomain.com/notorders(想不出一个好名字)? - Anand Patel
1
如果您添加了 @EnableDiscoveryClient 但没有生效,请确保还添加了依赖项 <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-eureka-server</artifactId> </dependency>,否则您将无法在 Eureka 服务器中看到它列出。 - Michail Michailidis
您可能不需要服务器依赖项,仅使用 spring-cloud-starter-eureka 应该完全可以。 - nickb

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接