Подключение микросервисов в приложении Java (и докере)

#docker #connection #microservices

Вопрос:

Я создал свое приложение Maven и успешно его докеризовал. Хотя для того, чтобы final .jar и контейнер в конечном итоге запускались по мере необходимости, приложению необходимо подключиться к некоторым сервисам (MongoDB, Apache Kafka и т.д.).

Итак, я пытаюсь найти способ передать эти службы в качестве аргументов, которые они могут легко изменить, не затрагивая какую-либо соответствующую часть исходного кода. Например, теперь мое приложение должно подключиться к «тестовой» базе данных, а затем к «производственной». Эти два экземпляра базы данных размещены в разных конечных точках. Мне нужно найти способ, чтобы не перезапускать конвейер сборки только для простого добавления конечной точки службы.

Ответ №1:

Храните всю эту конфигурацию (ip, порты, …) внутри переменных среды. Сгруппируйте все эти переменные внутри файла для каждой среды.

При запуске приложения в среде stage передайте контейнеру файл env stage. При запуске приложения в реальной среде передайте контейнеру реальный файл env.

При таком подходе вам не нужно менять свой код между средами. Только файлы конфигурации.

Вы можете прочитать больше об этом подходе по следующим ссылкам.