Spring Boot:使用shell脚本(.sh)启动多个服务

时间:2018-12-02 10:59:44

标签: spring-boot sh microservices

我喜欢使用Spring Boot(v2.1.1)为后端服务器编写Shell脚本,以一定顺序启动多个微服务-有些服务依赖于其他服务才能运行。

什么是“最佳实践”?

我当然可以像这样(original post)运行.jar

#!/bin/bash

java -jar myjar1.jar &
java -jar myjar2.jar &
java -jar myjar3.jar &

但这会同时启动.jar,afaik。

我如何确保某个服务myjar1.jar正确启动,然后又启动另一个服务myjar2.jar。因为每个服务都是SpringBootApplication,所以我认为有一定的可能性吗?!

我读了this SO solution,但是我不想创建任何符号链接,因为我只是出于开发目的而需要它。

1 个答案:

答案 0 :(得分:0)

关于它的启动时间,它非常特定于您的服务。 在进程级别,一旦执行命令服务,该服务就会运行,因此您将需要您的服务在状态启动时共享状态。 我能想到的一种方法是在您的脚本中启动服务,公开运行状况api并检查其是否启动。如果是下一个。您需要在脚本中使用curl和sleep命令。

但是我想知道为什么要这么做。专门针对您的微服务,您的服务不应相互依赖。他们可能需要一些数据,但是它们应该对服务可能来去去的事实具有弹性。您应该有一个很强的理由去做,因为在现实环境中,要确保维持秩序非常困难。