我正在使用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中配置的。怎么解决?我认为使用不同的端口创建多个配置文件不是一个好主意,以防我必须运行我的微服务的其他实例。
感谢您的阅读和您的想法。
答案 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)
为什么不尝试使用某种容器化(docker或rkt)来部署微服务。 这将为您提供部署的灵活性,因为在容器化中,每个容器都有自己的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