是否可以使用相同的应用程序名称提供2种不同的服务?

时间:2018-01-25 10:35:36

标签: spring microservices netflix-eureka netflix-zuul

我们说我有一个名为" FooService"在docker容器中运行,另一个名为" BarService"在第二个docker容器中运行。这两项服务都注册了Eureka(在另一个docker容器中运行)。是否可以为两种服务使用相同的应用程序名称?例如。 http://localhost/myservice/foo应调用FooService,http://localhost/myservice/bar应调用BarService。开发环境是Spring Boot,服务实现为Spring RestControllers。只需输入" spring.application.name = myservice"在两个bootstrap.properties文件中,然后在RestController中放置@RequestMapping(" $ {spring.application.name}")当然不会起作用。但是,在某种程度上可以使用唯一标识符注册服务并仍使用通用URL路径调用它们吗?

1 个答案:

答案 0 :(得分:0)

是的,我认为这是一个非常常见的用例。您开发版本service-a,版本1,并且您希望部署service-a,版本2,(canary或blue / green)您可以部署这两个版本,并使用Eureka注册这两个版本,并且流量将发送到两个版本。验证版本2后,可以关闭版本1.