Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этом кратком руководстве описано, как развернуть приложение Java Spring Boot в Azure Service Fabric с помощью знакомых средств командной строки в Linux или macOS. Azure Service Fabric — это платформа распределенных систем для развертывания микрослужб и контейнеров и управления ими.
Предпосылки
Скачивание примера
В окне терминала выполните следующую команду, чтобы клонировать пример приложения Spring Boot Started на локальный компьютер.
git clone https://github.com/spring-guides/gs-spring-boot.git
Создание приложения Spring Boot
В каталоге gs-spring-boot/complete выполните следующую команду, чтобы создать приложение.
./gradlew build
Упаковка приложения Spring Boot
В каталоге gs-spring-boot в клоне выполните
yo azuresfguest
команду.Введите следующие сведения для каждого запроса.
В папке SpringServiceFabric/SpringServiceFabric/SpringGettingStartedPkg/code создайте файл с именем entryPoint.sh. Добавьте следующий код в файл entryPoint.sh .
#!/bin/bash BASEDIR=$(dirname $0) cd $BASEDIR java -jar *spring-boot*.jar
Добавьте ресурс Endpoints в файл gs-spring-boot/SpringServiceFabric/SpringServiceFabric/SpringGettingStartedPkg/ServiceManifest.xml
<Resources> <Endpoints> <Endpoint Name="WebEndpoint" Protocol="http" Port="8080" /> </Endpoints> </Resources>
ТеперьServiceManifest.xml выглядит следующим образом:
<?xml version="1.0" encoding="utf-8"?> <ServiceManifest Name="SpringGettingStartedPkg" Version="1.0.0" xmlns="http://schemas.microsoft.com/2011/01/fabric" xmlns:xsd="https://www.w3.org/2001/XMLSchema" xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance" > <ServiceTypes> <StatelessServiceType ServiceTypeName="SpringGettingStartedType" UseImplicitHost="true"> </StatelessServiceType> </ServiceTypes> <CodePackage Name="code" Version="1.0.0"> <EntryPoint> <ExeHost> <Program>entryPoint.sh</Program> <Arguments></Arguments> <WorkingFolder>CodePackage</WorkingFolder> </ExeHost> </EntryPoint> </CodePackage> <Resources> <Endpoints> <Endpoint Name="WebEndpoint" Protocol="http" Port="8080" /> </Endpoints> </Resources> </ServiceManifest>
На этом этапе вы создали приложение Service Fabric для примера "Начало работы с Spring Boot", которое можно развернуть в Service Fabric.
Локальное запуск приложения
Запустите локальный кластер на компьютерах Ubuntu, выполнив следующую команду:
sudo /opt/microsoft/sdk/servicefabric/common/clustersetup/devclustersetup.sh
При использовании Mac запустите локальный кластер с образа Docker (предполагается, что вы выполнили необходимые условия для настройки локального кластера для Mac).
docker run --name sftestcluster -d -p 19080:19080 -p 19000:19000 -p 25100-25200:25100-25200 -p 8080:8080 mysfcluster
Запуск локального кластера занимает некоторое время. Чтобы убедиться, что кластер полностью включен, перейдите к Service Fabric Explorer по адресу
http://localhost:19080
. Пять работоспособных узлов указывают, что локальный кластер запущен и работает.Откройте папку gs-spring-boot/SpringServiceFabric .
Выполните следующую команду, чтобы подключиться к локальному кластеру.
sfctl cluster select --endpoint http://localhost:19080
Выполните сценарий install.sh.
./install.sh
Откройте ваш любимый веб-браузер и перейдите к приложению, открыв
http://localhost:8080
.
Теперь вы можете получить доступ к приложению Spring Boot, которое было развернуто в кластере Service Fabric.
Дополнительные сведения см. в примере "Начало работы с Spring Boot" на веб-сайте Spring.
Масштабирование приложений и служб в кластере
Службы можно масштабировать в кластере для изменения нагрузки на службы. Масштабируйте службу, изменив количество экземпляров, работающих в кластере. Существует множество способов масштабирования служб, например, вы можете использовать скрипты или команды из интерфейса командной строки Service Fabric (sfctl). В следующих шагах используется Service Fabric Explorer.
Service Fabric Explorer выполняется во всех кластерах Service Fabric и может получить доступ из браузера, перейдя на порт управления HTTP кластера (19080); например, http://localhost:19080
.
Чтобы масштабировать веб-интерфейсную службу, сделайте следующее:
Откройте Service Fabric Explorer в кластере, например
http://localhost:19080
.Выберите многоточие (...) рядом с узлом fabric:/SpringServiceFabric/SpringGettingStarted в представлении дерева и выберите Масштабирование службы.
Теперь вы можете выбрать масштабирование числа экземпляров сервиса.
Измените число на 3 и выберите Масштабировать службу.
Альтернативный способ масштабирования службы с помощью командной строки выглядит следующим образом.
# Connect to your local cluster sfctl cluster select --endpoint https://<ConnectionIPOrURL>:19080 --pem <path_to_certificate> --no-verify # Run Bash command to scale instance count for your service sfctl service update --service-id 'SpringServiceFabric~SpringGettingStarted' --instance-count 3 --stateless
Выберите узел fabric:/SpringServiceFabric/SpringGettingStarted в древовидном представлении и разверните узел раздела (обозначенный GUID).
Служба имеет три экземпляра, а в древовидном представлении отображаются узлы, на которых выполняются экземпляры.
С помощью этой простой задачи управления вы удвоили ресурсы, доступные для интерфейсной службы для обработки пользовательской нагрузки. Важно понимать, что для надежной работы службы не требуется несколько её экземпляров. Если служба завершается ошибкой, Service Fabric гарантирует непрерывную работу нового экземпляра службы в кластере.
Резервное переключение служб в кластере
Для демонстрации отказоустойчивости службы имитируется перезапуск узла с помощью Service Fabric Explorer. Убедитесь, что запущен только один экземпляр службы.
Откройте Service Fabric Explorer в кластере, например
http://localhost:19080
.Выберите многоточие (...) рядом с узлом, на котором работает экземпляр вашей службы, и перезапустите узел.
Экземпляр вашей службы перемещается на другой узел, и приложение работает без перерыва.
Дальнейшие действия
Из этого руководства вы узнали, как выполнить следующие действия:
- Развертывание приложения Spring Boot в Service Fabric
- Развертывание приложения в локальном кластере
- Масштабирование приложения путем подключения дополнительных узлов
- Выполните переключение вашего сервиса при отказе без снижения доступности.
Дополнительные сведения о работе с приложениями Java в Service Fabric см. в руководстве по приложениям Java.