Szybki start: wdrażanie aplikacji Java Spring Boot w usłudze Azure Service Fabric

W tym przewodniku Szybki start wdrożysz aplikację Java Spring Boot w usłudze Azure Service Fabric przy użyciu znanych narzędzi wiersza polecenia w systemie Linux lub macOS. Usługa Azure Service Fabric to platforma systemów rozproszonych umożliwiająca wdrażanie mikrousług i kontenerów, a także zarządzanie nimi.

Wymagania wstępne

Pobierz przykład

W oknie terminalu uruchom następujące polecenie, aby sklonować przykładową aplikację Spring Boot Getting Started na komputer lokalny.

git clone https://github.com/spring-guides/gs-spring-boot.git

Kompilowanie aplikacji Spring Boot

W katalogu gs-spring-boot/complete uruchom poniższe polecenie, aby skompilować aplikację

./gradlew build

Tworzenie pakietu aplikacji Spring Boot

  1. W katalogu gs-spring-boot w klonie uruchom yo azuresfguest polecenie .

  2. Wprowadź następujące szczegóły dla każdego monitu.

    Spring Boot Yeoman entries

  3. W folderze SpringServiceFabric/SpringServiceFabric/SpringGettingStartedPkg/code utwórz plik o nazwie entryPoint.sh. Dodaj następujący kod do pliku entryPoint.sh .

    #!/bin/bash
    BASEDIR=$(dirname $0)
    cd $BASEDIR
    java -jar *spring-boot*.jar
    
  4. Dodaj zasób Endpoints w pliku gs-spring-boot/SpringServiceFabric/SpringServiceFabric/SpringGettingStartedPkg/ServiceManifest.xml

        <Resources>
          <Endpoints>
            <Endpoint Name="WebEndpoint" Protocol="http" Port="8080" />
          </Endpoints>
       </Resources>
    

    Plik ServiceManifest.xml wygląda teraz następująco:

    <?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>
    

Na tym etapie utworzono aplikację usługi Service Fabric dla przykładu Wprowadzenie środowiska Spring Boot, którą można wdrożyć w usłudze Service Fabric.

Lokalne uruchamianie aplikacji

  1. Uruchom klaster lokalny na maszynach z systemem Ubuntu, uruchamiając następujące polecenie:

    sudo /opt/microsoft/sdk/servicefabric/common/clustersetup/devclustersetup.sh
    

    Jeśli korzystasz z komputera Mac, uruchom klaster lokalny z obrazu Docker (przy założeniu, że zostały spełnione wymagania wstępne konfiguracji klastra lokalnego dla komputerów Mac).

    docker run --name sftestcluster -d -p 19080:19080 -p 19000:19000 -p 25100-25200:25100-25200 -p 8080:8080 mysfcluster
    

    Uruchamianie klastra lokalnego zajmuje nieco czasu. Aby potwierdzić, że klaster jest w pełni uruchomiony, otwórz narzędzie Service Fabric Explorer dostępne pod adresem http://localhost:19080. Pięć węzłów w dobrej kondycji oznacza, że klaster lokalny jest uruchomiony.

    Service Fabric Explorer shows healthy nodes

  2. Otwórz folder gs-spring-boot/SpringServiceFabric.

  3. Uruchom następujące polecenie, aby połączyć się z klastrem lokalnym.

    sfctl cluster select --endpoint http://localhost:19080
    
  4. Uruchom skrypt install.sh.

    ./install.sh
    
  5. Uruchom przeglądarkę internetową i uzyskaj dostęp do aplikacji, przechodząc do adresu http://localhost:8080.

    Spring Boot Service Fabric sample

Teraz możesz uzyskiwać dostęp do aplikacji Spring Boot, która została wdrożona w klastrze usługi Service Fabric.

Aby uzyskać więcej informacji, zobacz przykład Spring Boot Getting Started w witrynie internetowej Spring.

Skalowanie aplikacji i usług w klastrze

Usługi można skalować na klaster w celu dostosowania ich do zmiany obciążenia. Skalowanie usługi odbywa się przez zmienianie liczby wystąpień uruchomionych w klastrze. Istnieje wiele sposobów skalowania usług. Na przykład można użyć skryptów lub poleceń interfejsu wiersza polecenia usługi Service Fabric (sfctl). W poniższych krokach będzie używane narzędzie Service Fabric Explorer.

Narzędzie Service Fabric Explorer działa we wszystkich klastrach usługi Service Fabric i można uzyskać do niego dostęp z przeglądarki, przechodząc do portu HTTP zarządzania klastrami (19080), na przykład http://localhost:19080.

Aby skalować usługę internetową frontonu, wykonaj następujące czynności:

  1. Otwórz narzędzie Service Fabric Explorer w klastrze — na przykład http://localhost:19080.

  2. Wybierz wielokropek (...) obok węzła fabric:/SpringServiceFabric/SpringGettingStarted w widoku drzewa i wybierz pozycję Skaluj usługę.

    Service Fabric Explorer scale service sample

    Teraz możesz skalować liczbę wystąpień usługi.

  3. Zmień liczbę na 3 i wybierz pozycję Skaluj usługę.

    Alternatywny sposób skalowania usługi to użycie wiersza polecenia w następujący sposób.

    # 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 
    
  4. Wybierz węzeł fabric:/SpringServiceFabric/SpringGettingStarted w widoku drzewa i rozwiń węzeł partycji (reprezentowany przez identyfikator GUID).

    Service Fabric Explorer scale service complete

    Usługa ma trzy wystąpienia, a widok drzewa pokazuje węzły, na których wystąpienia są uruchomione.

Za pomocą tego prostego zadania zarządzania zostały podwojone zasoby dostępne dla usługi frontonu na potrzeby przetwarzania obciążenia użytkownika. Pamiętaj, że nie musisz mieć wielu wystąpień usługi, aby działała ona niezawodnie. W przypadku awarii usługa Service Fabric gwarantuje uruchomienie nowego wystąpienie usługi w klastrze.

Przenoszenie usług do trybu failover w klastrze

Aby przedstawić przenoszenie usługi w tryb failover, ponowne uruchomienie węzła jest symulowane przy użyciu narzędzia Service Fabric Explorer. Upewnij się, że jest uruchomione tylko jedno wystąpienie usługi.

  1. Otwórz narzędzie Service Fabric Explorer w klastrze — na przykład http://localhost:19080.

  2. Wybierz wielokropek (...) obok węzła z uruchomionym wystąpieniem usługi i uruchom ponownie węzeł.

    Service Fabric Explorer restart node

  3. Wystąpienie usługi zostanie przeniesione do innego węzła bez przestoju w działaniu aplikacji.

    Service Fabric Explorer restart node succeed

Następne kroki

W tym przewodniku Szybki start zawarto informacje na temat wykonywania następujących czynności:

  • Wdrażanie aplikacji Spring Boot w usłudze Service Fabric
  • Wdrażanie aplikacji w klastrze lokalnym
  • Skalowanie aplikacji w poziomie między wieloma węzłami
  • Przenoszenie usługi w tryb failover bez wywierania wpływu na jej dostępność

Aby dowiedzieć się więcej o pracy z aplikacjami Java w usłudze Service Fabric, przejdź do samouczka dotyczącego aplikacji Java.