使用spring cloud config运行多个实例微服务

时间:2017-02-02 12:39:10

标签: spring spring-boot microservices spring-cloud-config

我正在开发一个使用Spring Boot微服务,它暴露了REST端点。

为了满足可扩展性限制,将部署 [相同]服务的多个实例(基本上在需要时向上扩展,在不需要时向下扩展)。

我使用 Spring Cloud Config Server 为此服务提供配置(例如端口绑定和其他配置)。

由于暴露REST api的服务,如何配置配置服务器为微服务的每个实例提供一个唯一的端口?

一种可能的解决方案是,在单个机器/ VM中运行服务或创建docker容器并部署服务。如果无法从云配置服务器向服务提供随机端口,这可能是我的解决方案。

2 个答案:

答案 0 :(得分:2)

您可以使用不同的Spring配置文件启动三个实例中的每个实例。例如。 SPRING_PROFILES_ACTIVE = prod1为第一个实例,SPRING_PROFILES_ACTIVE = prod2为第二个,等等。

然后,您可以在application-prod1.properties,application-prod2.properties等(或yaml文件)中设置端口。

您还可以在cloudfoundry中运行该应用。然后cloudfoundry将为您创建不同的容器。

答案 1 :(得分:0)

您是否尝试过使用带有Rabbit MQ的spring-cloud-bus,它基本上是通过POST总线/刷新将您的配置更改广播到应用程序的所有实例。