Jhipster微服务:如何在生产中的微服务上创建动态实例?

时间:2018-01-25 08:40:53

标签: java jhipster microservices production-environment

我正在使用JHipster的3个微服务(microservice1,microservice2,microservice3)应用程序,1个JHipster注册表应用程序和API网关。所有应用程序都按需运行。我可以通过应用程序在模式一实例中运行我的5个应用程序而不会出现问题:

  • microservice1 =>一个实例

  • microservice2 =>一个实例

  • microservice3 =>一个实例

  • jhipster registry =>一个实例

  • API Gateway =>一个实例

我希望动态地或以某种自动化方式拥有以下实例:

  • microservice1 =>一个实例

  • microservice2 =>一个,两个或更多实例

  • microservice3 =>一个实例

  • jhipster registry =>一个实例

  • API Gateway =>一个实例

但我想知道如何动态或手动实例更多microservice2实例。如果我想创建一个新的服务实例,那么最佳实践是什么? :   - 在Jhipster配置中,在application-prod.yml中设置。设置的端口是应用程序的创建。我只是一台服务器。所以如果我不能在同一台服务器上创建一个新实例!存在冲突IP /端口,因为端口是在application-prod.yml中配置的。怎么解决?我认为使用不同的端口创建多个配置文件不是一个好主意,以防我必须运行我的微服务的其他实例。

  • 还有其他方法可以解决我的问题吗?

感谢您的阅读和您的想法。

3 个答案:

答案 0 :(得分:1)

您只需使用以下配置:Class.js // class Schema const classSchema = new Schema({ name: { type: String, required: true }, abbr: { type: String, required: true }, sentiment: { terrible: { type: Number, default: 0 }, bad: { type: Number, default: 0 }, okay: { type: Number, default: 0 }, good: { type: Number, default: 0 }, fantastic: { type: Number, default: 0 } } });

您的Spring Boot应用程序将扫描您操作系统上的空闲端口并使用它。

答案 1 :(得分:0)

为什么不尝试使用某种容器化(dockerrkt)来部署微服务。 这将为您提供部署的灵活性,因为在容器化中,每个容器都有自己的IP,因此端口和IP不会发生冲突。

在此之后,你需要一些服务发现来发现你的微服务,以便从其他微服务中调用。

答案 2 :(得分:0)

我们在项目中为同一件事所做的事情是,通过为动态微服务创建新的配置文件来部署相同的实例。

只需确保您使用新的配置文件正确连接到注册表和网关,jhipster便会全力以赴。

MICROSERVICE A 1   (dynamic) SERVER1
MICROSERVICE A 2   (dynamic) SERVER2
MICROSERVICE B  (deployedin) SERVER1
GATEWAY  (deployedin) SERVER1
REGISTRY  (deployedin) SERVER1