Hızlı Başlangıç: Azure Service Fabric'te Java Spring Boot uygulaması dağıtma

Bu hızlı başlangıçta, Linux veya macOS'ta tanıdık komut satırı araçlarını kullanarak Azure Service Fabric'e bir Java Spring Boot uygulaması dağıtacaksınız. Azure Service Fabric; mikro hizmetleri ve kapsayıcıları dağıtmayı ve yönetmeyi sağlayan bir dağıtılmış sistemler platformudur.

Önkoşullar

Örneği indirme

Bir terminal penceresinde aşağıdaki komutu çalıştırarak Spring Boot Kullanmaya Başlama örnek uygulamasını yerel makinenize kopyalayın.

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

Spring Boot uygulamasını derleme

gs-spring-boot/complete dizininde aşağıdaki komutu çalıştırarak uygulamayı oluşturun

./gradlew build

Spring Boot uygulamasını paketleme

  1. Kopyanızdaki gs-spring-boot dizininde komutunu çalıştırınyo azuresfguest.

  2. Her istem için aşağıdaki ayrıntıları girin.

    Spring Boot Yeoman entries

  3. SpringServiceFabric/SpringServiceFabric/SpringGettingStartedPkg/code klasöründe entryPoint.sh adlı bir dosya oluşturun. aşağıdaki kodu entryPoint.sh dosyasına ekleyin.

    #!/bin/bash
    BASEDIR=$(dirname $0)
    cd $BASEDIR
    java -jar *spring-boot*.jar
    
  4. Gs-spring-boot/SpringServiceFabric/SpringServiceFabric/SpringGettingStartedPkg/ServiceManifest.xml dosyasına Uç Noktalar kaynağını ekleyin

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

    ServiceManifest.xml şimdi şu şekilde görünür:

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

Bu aşamada, Spring Boot Kullanmaya Başlama örneği için Service Fabric’e dağıtabileceğiniz bir Service Fabric uygulaması oluşturdunuz.

Uygulamayı yerel olarak çalıştırma

  1. Aşağıdaki komutu çalıştırarak Ubuntu makinelerinde yerel kümenizi başlatın:

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

    Mac kullanıyorsanız Docker görüntüsünden yerel kümeyi başlatın (burada Mac için yerel kümenizi ayarlama önkoşullarına uyduğunuz varsayılır).

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

    Yerel kümenin başlatılması biraz zaman alabilir. Kümenin sorunsuz çalıştığından emin olmak için, http://localhost:19080 adresinden Service Fabric Explorer’a erişin. Sorunsuz beş düğüm, yerel kümenin çalıştığını belirtir.

    Service Fabric Explorer shows healthy nodes

  2. gs-spring-boot/SpringServiceFabric klasörünü açın.

  3. Yerel kümenize bağlanmak için aşağıdaki komutu çalıştırın.

    sfctl cluster select --endpoint http://localhost:19080
    
  4. install.sh betiğini çalıştırın.

    ./install.sh
    
  5. Sık kullandığınız web tarayıcısını açın vehttp://localhost:8080 adresine giderek uygulamaya erişin.

    Spring Boot Service Fabric sample

Bir Service Fabric kümesine dağıtılmış Spring Boot uygulamasına artık erişebilirsiniz.

Daha fazla bilgi için Spring web sitesindeki Spring Boot Kullanmaya Başlama örneğine bakın.

Bir kümedeki uygulamaları ve hizmetleri ölçeklendirme

Hizmet yükündeki bir değişikliği karşılamak için kümedeki hizmetler kolayca ölçeklendirilebilir. Kümede çalıştırılan örnek sayısını değiştirerek bir hizmeti ölçeklendirebilirsiniz. Hizmetlerinizi ölçeklendirmenin birçok yolu vardır; örneğin, Service Fabric CLI’den (sfctl) betikler veya komutlar kullanabilirsiniz. Aşağıdaki adımlarda Service Fabric Explorer kullanılmaktadır.

Service Fabric Explorer tüm Service Fabric kümelerinde çalıştırılır ve tarayıcıdan kümelerin HTTP yönetim bağlantı noktasına (19080) göz atılarak (örneğin, http://localhost:19080) erişilebilir.

Web ön uç hizmetini ölçeklendirmek için aşağıdakileri yapın:

  1. Kümenizde Service Fabric Explorer'ı açın. Örneğin: http://localhost:19080.

  2. Ağaç görünümünde doku:/SpringServiceFabric/SpringGettingStarted düğümünü yanındaki üç noktayı (...) seçin ve Hizmeti Ölçeklendir'i seçin.

    Service Fabric Explorer scale service sample

    Şimdi hizmetin örnek sayısını ölçeklendirebilirsiniz.

  3. Sayıyı 3 olarak değiştirin ve Hizmeti Ölçeklendir'i seçin.

    Komut satırını kullanarak hizmeti ölçeklendirmenin alternatif bir yolu aşağıda verilmiştir.

    # 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. Ağaç görünümünde doku:/SpringServiceFabric/SpringGettingStarted düğümünü seçin ve bölüm düğümünü genişletin (GUID ile gösterilir).

    Service Fabric Explorer scale service complete

    Hizmette üç örnek bulunur ve ağaç görünümünde örneklerin çalıştığı düğümler gösterilir.

Bu basit yönetim görevi sayesinde ön uç hizmetinin kullanıcı yükünü işlemek için kullanabileceği kaynakları iki katına çıkarmış oldunuz. Bir hizmetin güvenilir bir şekilde çalışması için birden fazla örneğe ihtiyaç duymadığınızı anlamanız önemlidir. Bir hizmet başarısız olursa Service Fabric, kümede yeni bir hizmet örneği çalışmasını sağlar.

Bir kümedeki hizmetlerin yükünü devretme

Hizmet yük devretmesini göstermek için Service Fabric Explorer'ı kullanarak bir düğümü yeniden başlatma işleminin benzetimi yapılmıştır. Hizmetinizin yalnızca bir örneğinin çalıştığından emin olun.

  1. Kümenizde Service Fabric Explorer'ı açın. Örneğin: http://localhost:19080.

  2. Hizmetinizin örneğini çalıştıran düğümün yanındaki üç noktayı (...) seçin ve düğümü yeniden başlatın.

    Service Fabric Explorer restart node

  3. Hizmetinizin örneği bu durumda farklı bir düğüme taşınmıştır ve uygulamanızda kesinti yaşanmaz.

    Service Fabric Explorer restart node succeed

Sonraki adımlar

Bu hızlı başlangıçta şunları öğrendiniz:

  • Service Fabric’e Spring Boot uygulaması dağıtma
  • Uygulamayı yerel kümenize dağıtma
  • Uygulamanın ölçeğini birden çok düğüm arasında genişletme
  • Kullanılabilirliği etkilemeden hizmetinizin yük devretmesini gerçekleştirme

Service Fabric’te Java uygulamalarıyla çalışma hakkında daha fazla bilgi için Java uygulamaları öğreticisiyle devam edin.