Общие сведения о примере приложения

В этом цикле кратких руководств для демонстрации развертывания приложения Steeltoe для .NET Core в службе Azure Spring Cloud используется пример приложения, состоящего из двух микрослужб. Вы будете использовать такие возможности Azure Spring Cloud, как обнаружение служб, сервер конфигурации, журналы, метрики и распределенная трассировка.

Функциональные службы

Пример приложения состоит из двух микрослужб:

  • Служба planet-weather-provider возвращает текстовое описание погоды в ответ на HTTP-запрос, в котором указывается название планеты. Например, она может вернуть "Очень тепло" для Меркурия. Данные о погоде она получает с сервера конфигурации. Сервер конфигурации получает их из файла YAML в репозитории Git, например:

    MercuryWeather: very warm
    VenusWeather: quite unpleasant
    MarsWeather: very cool
    SaturnWeather: a little bit sandy
    
  • Служба solar-system-weather возвращает данные для четырех планет в ответ на HTTP-запрос. Она получает их, отправляя четыре HTTP-запроса в службу planet-weather-provider. Для вызова planet-weather-provider она использует службу обнаружения сервера Eureka. Данные она возвращает в формате JSON, например:

    [{
         "Key": "Mercury",
         "Value": "very warm"
    }, {
         "Key": "Venus",
         "Value": "quite unpleasant"
    }, {
         "Key": "Mars",
         "Value": "very cool"
    }, {
         "Key": "Saturn",
         "Value": "a little bit sandy"
    }]
    

Архитектура примера приложения показана на следующей диаграмме.

Схема примера приложения

Репозиторий кода

Пример приложения находится в папке steeltoe-sample в репозитории Azure-Samples/Azure-Spring-Cloud-Samples на сайте GitHub.

В инструкциях, приведенных в следующих кратких руководствах, по мере необходимости упоминается исходный код.

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

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

Архитектура PetClinic

Функциональные службы для развертывания

Приложение PetClinic можно разделить на 4 ключевые микрослужбы. Все они являются независимо развертываемыми приложениями, упорядоченными по бизнес-доменам.

  • Служба Customers (Клиенты) : содержит общую логику приема и проверки данных, вводимых пользователем, включая сведения о питомцах и их владельцах (имя, адрес, город, телефон).
  • Служба Visits (Посещения) : хранит и отображает сведения о посещениях для каждого комментария о питомце.
  • Служба Vets (Ветеринары) : хранит и отображает сведения о ветеринарах, включая имена и специализацию.
  • Шлюз API: единая точка входа, используемая для обработки запросов и направления их соответствующей службе или для вызова нескольких служб, а также для статистической обработки результатов. Три основные службы предоставляют клиенту внешний API. В реальных системах количество функций может очень быстро увеличиваться по мере роста сложности самих систем. В отрисовке одной сложной веб-страницы могут участвовать сотни служб.

Службы инфраструктуры, размещенные в Azure Spring Cloud

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

  • Служба конфигурации: конфигурация Azure Spring Cloud — это горизонтально масштабируемая централизованная служба настройки для распределенных систем. Она использует подключаемый репозиторий, который сейчас поддерживает локальное хранилище, Git и Subversion.
  • Обнаружение служб: позволяет автоматически обнаруживать сетевые расположения для экземпляров служб, адреса которых могут назначаться динамически вследствие автоматического масштабирования, сбоев и обновлений.

Конфигурация базы данных

В конфигурации по умолчанию для приложения PetClinic используется база данных, выполняющаяся в памяти (HSQLDB), которая заполняется данными при запуске. Аналогичная конфигурация доступна и для MySql, если требуется постоянная база. В файлы pom.xml уже включена зависимость для Connector/J, драйвера JDBC MySQL.

Пример использования PetClinic

Полные сведения о реализации см. в нашей версии PetClinic. При необходимости в образцах используются ссылки на исходный код.

Дальнейшие действия