为了完全控制我的架构组件,我想单独部署所有基础设施组件(Service Locator、Cassandra、Kafka(和服务。
我能够使用如下命令运行服务:mvn lagom:startServiceLocator lagom:startCassandra -pl hello-impl lagom:run
但是,当我单独启动这些组件时(即通过mvn lagom:startServiceLocator
(,启动的组件会自动终止。在这种情况下,我看到以下日志,但定位器在http://localhost:9008
不可用。
我使用的是没有代理并使用默认配置的本地开发环境。
如何单独运行它们?
Java/Maven: 如果你想运行多个 Lagom 微服务,你只需要做你正在做的事情:
mvn lagom:startServiceLocator lagom:startCassandra -pl hello-impl lagom:run
它将启动定位器,cassandra,如果需要,您可以添加kafka,之后,您只需在新的cmd中运行以下命令:
mvn -pl second-lagom-microservice-impl lagom:run
现在它将连接到运行在第一个命令 cassandra 和定位器中。
Lagom 不允许你在不运行服务的情况下运行 cassandra 或定位器。
Scala/SBT:
对于相同的 sbt 方法,我们需要使用所有需要的服务运行第一个微服务:
sbt lagomServiceLocatorStart lagomCassandraStart lagomKafkaStart microservice-impl/run
然后只需运行另一个类似:**sbt another-microservice-impl/run**
此外,还可以在build.sbt中添加别名,以便微服务单独运行它:
addCommandAlias(s"runMicrocervice1", ";lagomServiceLocatorStart;lagomCassandraStart;lagomKafkaStart;microservice1-impl/run")
只需按以下方式运行它:
sbt runMicrocervice1