Spring Boot: запуск нескольких сервисов с использованием сценария оболочки (.sh) - PullRequest
0 голосов
/ 02 декабря 2018

Мне нравится писать сценарий оболочки для внутреннего сервера, используя Spring Boot (v2.1.1), чтобы запускать несколько микросервисов в определенном порядке - некоторые службы зависят от запуска других.

Что такое 'best Practice '?

Конечно, я могу запустить .jar s следующим образом ( оригинальный пост ):

#!/bin/bash

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

Но это запустит .jars одновременно, afaik.

Как я могу убедиться, что определенная служба myjar1.jar запущена правильно, а после этого запущена другая служба myjar2.jar.Поскольку каждый сервис - это SpringBootApplication, я предполагаю, что для этого есть определенные возможности?!

Я прочитал это SO-решение , но я не хочу создавать какие-либо символические ссылки, потому что мне просто нужночто в целях развития.

1 Ответ

0 голосов
/ 02 декабря 2018

Ну, это очень специфично для вашей службы, когда она начинается.На уровне процесса, как только вы запустите команду, служба будет запущена, поэтому вам понадобится ваша служба, чтобы поделиться состоянием, когда оно будет запущено.Один из способов, который я могу придумать, это запустить в вашем скрипте сервис, выставить api здоровья и проверить, работает ли он.если это перейти к следующему.Вам нужно использовать команды curl и sleep в ваших скриптах.

Но я хотел бы знать, почему вы хотите это сделать.Специально для ваших микросервисов, ваши услуги не должны зависеть друг от друга.Им могут понадобиться некоторые данные, но они должны быть устойчивы к тому, что услуги могут приходить и уходить.У вас должна быть очень веская причина делать то, что вы делаете, потому что в реальном мире очень трудно обеспечить поддержание порядка.

...