Как Я Запустил Spring Cloud

Меня зовут Вячеслав Аксенов, я старший бэкенд-разработчик Java/Kotlin на крупном предприятии.

Однажды я оказался в проекте, полном микросервисов, в котором за настройку отвечало что-то вроде Spring Cloud. Чтобы понять, как именно это работает, я исследовал и прикрепил этот странный элемент к одному из своих любимых проектов.

И в этой статье я шаг за шагом покажу вам, как я это сделал.

Точнее, как настроить сервер конфигурации Spring Cloud.



Некоторая справочная информация

В наше время программирование из чего-то магического и загадочного переросло в довольно прозаическое занятие.

Создание серверного приложения больше не похоже на построение монолита с локальными прикладными решениями разной степени ясности и волшебства.

Создание собственных велосипедов заменило использование готовых решений, подходящих для конкретных задач.

В настоящее время для серверной части больших систем в качестве основного языка программирования преимущественно используется Java/Kotlin. А там, где есть Java и Enterprise, Spring Framework идет рука об руку.

А поскольку строить монолиты сейчас не модно, выбор сделан в сторону микросервисов.

(мое мнение, что микросервисы делать полностью микро не стоит. Каждый сервис должен решать отдельную бизнес-задачу.

Но об этом я напишу в отдельной статье) А тут еще зоопарк сервисов — у каждого свои конфиги.

И ими нужно как-то управлять.

Вопрос - как это сделать? Так какую проблему решает Spring Cloud? Представим, что у вас есть 5 приложений Java/Spring, каждое из которых при запуске загружает разные конфиги (пароли/адреса для базы данных, внешние API и т. д.).

Существуют разные среды — test, dev, prod, stage и т. д. Spring Cloud позволяет хранить все конфигурации для разных приложений и разных сред в одном месте.



Как его запустить?

Давайте разберемся, как запустить эту систему на простом примере.

Есть простое Spring-приложение, которое нужно научить выходить в облако за конфигами.

В моем случае это бот для учета рабочего времени в телеграмме, который я написал для личных целей - вид (что я сделал).

Но код открытый — любой желающий может использовать мой или запустить его самостоятельно.

Вы можете игнорировать бизнес-логику; нас интересует только конфигурация для работы со Spring Cloud.

Настройка сервисной части:

Для этого вам нужно добавить Spring-cloud-starter-config и Spring-cloud-starter-bootstrap в список зависимостей:
  
   

<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-config</artifactId> <version>3.0.5</version> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-bootstrap</artifactId> <version>3.0.4</version> </dependency>

Вы можете взять последние версии зависимостей с https://search.maven.org/ Пример в pom.xml: https://github.com/v-aksenov/whid-bot/blob/master/pom.xml#L35-L44 Application.properties также заменяется на bootstrap.yml, в котором нужно указать имя текущего приложения и адрес для подключения к облаку Spring.

spring:

Теги: #Сетевые технологии #Разработка сайтов #Микросервисы #java #Kotlin #spring boot #spring #telegram bot #spring cloud
Вместе с данным постом часто просматривают: