Поделиться через


Руководство по Подключение управляемому серверу Eureka для Spring в приложениях контейнеров Azure (предварительная версия)

Eureka Server for Spring — это реестр служб, позволяющий микрослужбам регистрировать себя и обнаруживать другие службы. Доступно как компонент приложений контейнеров Azure, вы можете привязать приложение контейнера к серверу Eureka для Spring для автоматической регистрации на сервере Eureka.

Из этого руководства вы узнаете, как:

  • Создание компонента Eureka Server для Spring Java
  • Привязка приложения контейнера к компоненту Eureka Server для Spring Java

Внимание

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

Необходимые компоненты

Чтобы завершить этот проект, вам потребуется следующее:

Требование Instructions
Учетная запись Azure Требуется активная подписка. Если у вас нет учетной записи, вы можете создать ее бесплатно.
Azure CLI Установите интерфейс командной строки Azure.

Рекомендации

При запуске в Eureka Server for Spring в приложениях контейнеров Azure помните о следующих сведениях:

Товар Описание
Область применения Компонент Eureka server for Spring выполняется в той же среде, что и подключенное приложение контейнера.
Масштабирование Сервер Eureka для Spring не может масштабироваться. Свойства minReplicas масштабирования и maxReplicas имеют значение . 1.
Ресурсы Распределение ресурсов контейнера для Eureka Server для Spring исправлено. Число ядер ЦП равно 0,5, а размер памяти — 1Gi.
Цены Выставление счетов Eureka Server для Spring подпадает под цены на основе потребления. Счета за ресурсы, используемые управляемыми компонентами Java, выставляются по тарифам "активный или простой". Вы можете удалить компоненты, которые больше не используются для остановки выставления счетов.
Binding Приложения-контейнеры подключаются к компоненту Eureka server for Spring через привязку. Привязки внедряют конфигурации в переменные среды приложения-контейнера. После установки привязки приложение-контейнер может считывать значения конфигурации из переменных среды и подключаться к серверу Eureka server for Spring.

Настройка

Прежде чем приступить к работе с сервером Eureka для Spring, сначала необходимо создать необходимые ресурсы.

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

  1. Создайте переменные для поддержки конфигурации приложения. Эти значения предоставляются для вас в целях этого урока.

    export LOCATION=eastus
    export RESOURCE_GROUP=my-services-resource-group
    export ENVIRONMENT=my-environment
    export JAVA_COMPONENT_NAME=eureka
    export APP_NAME=sample-service-eureka-client
    export IMAGE="mcr.microsoft.com/javacomponents/samples/sample-service-eureka-client:latest"
    
    «Переменная» Description
    LOCATION Расположение региона Azure, в котором создается приложение контейнера и компонент Java.
    ENVIRONMENT Имя среды "Приложения контейнеров Azure" для демонстрационного приложения.
    RESOURCE_GROUP Имя группы ресурсов Azure для демонстрационного приложения.
    JAVA_COMPONENT_NAME Имя компонента Java, созданного для приложения контейнера. В этом случае создается компонент Eureka Server для Spring Java.
    IMAGE Образ контейнера, используемый в приложении контейнера.
  2. Войдите в Azure с помощью Azure CLI.

    az login
    
  3. Создать группу ресурсов.

    az group create --name $RESOURCE_GROUP --location $LOCATION
    
  4. Создайте среду приложений контейнеров.

    az containerapp env create \
      --name $ENVIRONMENT \
      --resource-group $RESOURCE_GROUP \
      --location $LOCATION
    

Использование компонента Eureka Server для Spring Java

Теперь, когда у вас есть существующая среда, вы можете создать приложение-контейнер и привязать его к экземпляру компонента Java eureka Server for Spring.

  1. Создайте компонент Eureka Server для Spring Java.

    az containerapp env java-component eureka-server-for-spring create \
      --environment $ENVIRONMENT \
      --resource-group $RESOURCE_GROUP \
      --name $JAVA_COMPONENT_NAME
    
  2. Обновите конфигурацию компонента Eureka Server для Spring Java.

    az containerapp env java-component eureka-server-for-spring update \
      --environment $ENVIRONMENT \
      --resource-group $RESOURCE_GROUP \
      --name $JAVA_COMPONENT_NAME 
      --configuration eureka.server.renewal-percent-threshold=0.85 eureka.server.eviction-interval-timer-in-ms=10000
    
  3. Создайте приложение-контейнер и привязывайте его к серверу Eureka для Spring.

    az containerapp create \
      --name $APP_NAME \
      --resource-group $RESOURCE_GROUP \
      --environment $ENVIRONMENT \
      --image $IMAGE \
      --min-replicas 1 \
      --max-replicas 1 \
      --ingress external \
      --target-port 8080 \
      --bind $JAVA_COMPONENT_NAME \
      --query properties.configuration.ingress.fqdn
    

    Эта команда возвращает URL-адрес приложения контейнера, которое использует регистры с компонентом сервера Eureka. Скопируйте URL-адрес в текстовый редактор, чтобы его можно было использовать на следующем шаге.

    Перейдите /allRegistrationStatus в начало представления маршрута для всех приложений, зарегистрированных на сервере Eureka для Spring.

    Привязка внедряет в приложение несколько конфигураций в качестве переменных среды, в первую очередь eureka.client.service-url.defaultZone свойство. Это свойство указывает внутреннюю конечную точку компонента Java сервера Eureka.

    Привязка также внедряет следующие свойства:

    "eureka.client.register-with-eureka":    "true"
    "eureka.instance.prefer-ip-address":     "true"
    

    Свойство eureka.client.register-with-eureka устанавливается для true принудительной регистрации на сервере Eureka. Эта регистрация перезаписывает локальный параметр на application.propertiesсервере конфигурации и т. д. Если вы хотите задать его false, его можно перезаписать, задав переменную среды в приложении контейнера.

    Задано eureka.instance.prefer-ip-addresstrue значение из-за конкретного правила разрешения DNS в среде приложения контейнера. Не изменяйте это значение, чтобы не прерывать привязку.

    Вы также можете удалить привязку из приложения.

Очистка ресурсов

Ресурсы, созданные в этом руководстве, влияют на счет Azure. Если вы не собираетесь использовать эти службы в долгосрочной перспективе, выполните следующую команду, чтобы удалить все, созданное в этом руководстве.

az group delete \
  --resource-group $RESOURCE_GROUP

Следующие шаги