Рубрики
Без рубрики

Разъемы Spring Cloud и Heroku

См.раздел Настройка приложения Spring Boot на Heroku с помощью соединителей Spring Cloud.

Автор оригинала: Tim Schimandle.

1. Обзор

В этой статье мы рассмотрим настройку приложения Spring Boot на Heroku с помощью соединителей Spring Cloud.

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

В дополнение ко всему этому у них есть собственный конвейер CI/CD, который легко интегрируется в Git, что ускоряет разработку в производство.

Spring поддерживает Heroku через библиотеку Spring Cloud Connectors. Мы будем использовать это для автоматической настройки источника данных PostgreSQL в нашем приложении.

Давайте перейдем к написанию приложения.

2. Книжный сервис Spring Boot

Во-первых, давайте создадим новую простую службу загрузки Spring .

3. Подпишитесь на Heroku

Теперь нам нужно зарегистрироваться на учетную запись Heroku. Пойдем в heroku.com и нажмите на кнопку регистрации в правом верхнем углу страницы.

Теперь, когда у нас есть учетная запись, нам нужно получить инструмент CLI. Нам нужно перейти на страницу установки heroku-cli и установить это программное обеспечение. Это даст нам инструменты, необходимые для завершения этого урока.

4. Создайте приложение Heroku

Теперь, когда у нас есть CLI Heroku, давайте вернемся к нашему приложению.

4.1. Инициализация репозитория Git

Heroku лучше всего работает при использовании git в качестве системы управления версиями.

Давайте начнем с того, что перейдем в корень вашего приложения, в тот же каталог, что и ваш pom.xml файл и запуск команды git init для создания репозитория git. Затем запустите git add . и git commit -m “первый коммит” .

Теперь наше приложение сохранено в вашем локальном репозитории git.

4.2. Предоставление веб-приложения Heroku

Далее, давайте используем CLI Heroku для предоставления веб-сервера в нашей учетной записи.

Во-первых, нам нужно аутентифицировать вашу учетную запись Heroku. Из командной строки запустите heroku login и следуйте инструкциям по входу в систему и созданию SSH-ключа.

Затем запустите heroku create . Это обеспечит веб-сервер и добавит удаленный репозиторий, в который мы можем отправить наш код для развертывания. Мы также увидим домен, напечатанный в консоли, скопируйте этот домен, чтобы мы могли получить к нему доступ позже.

4.3. Нажмите код на Heroku

Теперь мы будем использовать git для отправки нашего кода в новый репозиторий Heroku.

Выполните команду git push heroku master , чтобы отправить наш код в Heroku.

В выводе консоли мы должны увидеть журналы, указывающие на то, что загрузка прошла успешно, после чего их система загрузит любые зависимости, построит наше приложение, запустит тесты (если таковые имеются) и развернет приложение, если все пройдет гладко.

Вот и все-теперь наше приложение публично развернуто на веб-сервере.

5. Тест в памяти на Heroku

Давайте убедимся, что ваше приложение работает. Используя домен из нашего шага создания, давайте протестируем наше живое приложение.

Давайте выполним несколько HTTP-запросов:

POST https://{heroku-domain}/books HTTP
{"author":"baeldung","title":"Spring Boot on Heroku"}

Мы должны вернуться:

{
    "title": "Spring Boot on Heroku",
    "author": "baeldung"
}

Теперь давайте попробуем прочитать объект, который мы только что создали:

GET https://{heroku-domain}/books/1 HTTP

Это должно вернуться:

{
    "id": 1,
    "title": "Spring Boot on Heroku",
    "author": "baeldung"
}

Все это выглядит хорошо, но в производстве мы должны использовать постоянное хранилище данных.

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

6. Добавление PostgreSQL

Чтобы добавить базу данных PostgreSQL, выполните следующую команду heroku addons:create heroku-postgresql:hobby-dev

Это обеспечит базу данных для нашего веб-сервера и добавит переменную среды, которая предоставляет информацию о соединении.

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

Чтобы Spring Boot знал, что мы используем PostgreSQL, нам нужно внести два изменения.

Во-первых, нам нужно добавить зависимость для включения драйверов PostgreSQL:


    org.postgresql
    postgresql
    42.2.10

Затем давайте добавим свойства, чтобы соединители данных Spring могли настраивать базу данных в соответствии с ее доступными ресурсами.

В файле src/main/resources создайте файл application.properties и добавьте следующие свойства:

spring.datasource.driverClassName=org.postgresql.Driver
spring.datasource.maxActive=10
spring.datasource.maxIdle=5
spring.datasource.minIdle=2
spring.datasource.initialSize=5
spring.datasource.removeAbandoned=true
spring.jpa.hibernate.ddl-auto=create

Это объединит наши соединения с базой данных и ограничит соединения нашего приложения. Heroku ограничивает количество активных подключений в базе данных уровня разработки до 10 , поэтому мы устанавливаем максимальное значение 10. Кроме того, мы устанавливаем свойство hibernate.ddl для создания, чтобы наша таблица книг создавалась автоматически.

Наконец, зафиксируйте эти изменения и запустите git push heroku master . Это подтолкнет эти изменения к нашему приложению Heroku. После запуска нашего приложения попробуйте запустить тесты из предыдущего раздела.

Последнее, что нам нужно сделать, это изменить настройки ddl. Давайте также обновим это значение:

spring.jpa.hibernate.ddl-auto=update

Это даст приложению указание обновить схему при внесении изменений в сущность при перезапуске приложения. Зафиксируйте и протолкните это изменение, как и раньше, чтобы изменения были перенесены в наше приложение Heroku.

Нам не нужно было писать пользовательскую интеграцию источников данных для всего этого. Это связано с тем, что Spring Cloud Connectors обнаруживает, что мы работаем с Heroku и используем PostgreSQL, и автоматически подключает источник данных Heroku.

5. Заключение

Теперь у нас есть запущенное приложение Spring Boot в Heroku.

Прежде всего, простота перехода от одной идеи к работающему приложению делает Heroku надежным способом развертывания.

Чтобы узнать больше о Heroku и всех инструментах, которые он предлагает, мы можем прочитать больше на heroku.com .

Как всегда, фрагменты кода можно найти на GitHub .