Служба весенней загрузки, определенная в docker-compose.yml зависит от , - служба Кассандара? Если да, то служба запускается, только если служба cassandra готова.
https://docs.docker.com/compose/compose-file/#depends_on
Взгляните на этот репозиторий github, чтобы найти проверку здоровья для службы кассандры.
https://github.com/docker-library/healthcheck
ЗАКЛЮЧЕНИЕ
После некоторого обсуждения мы выяснили, что docker-compose, по-видимому, не обеспечивает функциональность для ожидания, пока сервисы не будут исправными и работоспособными, такими как Kubernetes и Openshift (см. Комментарии ниже). Они рекомендуют использовать скрипт-обертку (docker-entrypoint.sh), который ожидает запуска зависимой службы, что делает необходимые двоичные файлы, которые не должны использоваться реальной службой, такой как двоичный файл клиента cassandra. Кроме того, служба, зависящая от Кассандры, никогда не сможет подняться, если Кассандра этого не сделает, чего не должно быть.
Главное для микросервисов является то, что они должны быть устойчивыми к сбоям и не должны погибать или не появляться, если в данный момент недоступна зависимая служба или неожиданно исчезает. Следовательно, микросервис должен быть реализован таким образом, чтобы он пытался установить соединение после запуска или неожиданного исчезновения. Неожиданно - это слово, которое на самом деле неправильно используется в этом контексте, потому что вы всегда должны ожидать таких проблем в распределенной среде, и даже при использовании docker-compose вы столкнетесь с такими проблемами, как обсуждалось в этой теме.
Следующая ссылка указывает на руководство, которое помогло правильно интегрировать cassandra в приложение весенней загрузки. Он предоставляет способ реализации извлечения соединения cassandra с повторным поведением, поэтому служба устойчива к несуществующей базе данных cassandra и больше не будет запускаться. Надеюсь, это поможет и другим.
https://dzone.com/articles/containerising-a-spring-data-cassandra-application