我喜欢使用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,但是我不想创建任何符号链接,因为我只是出于开发目的而需要它。
答案 0 :(得分:0)
关于它的启动时间,它非常特定于您的服务。 在进程级别,一旦执行命令服务,该服务就会运行,因此您将需要您的服务在状态启动时共享状态。 我能想到的一种方法是在您的脚本中启动服务,公开运行状况api并检查其是否启动。如果是下一个。您需要在脚本中使用curl和sleep命令。
但是我想知道为什么要这么做。专门针对您的微服务,您的服务不应相互依赖。他们可能需要一些数据,但是它们应该对服务可能来去去的事实具有弹性。您应该有一个很强的理由去做,因为在现实环境中,要确保维持秩序非常困难。