Dela via


Självstudie: Skapa ett Eureka-serverkomponentkluster med hög tillgänglighet i Azure Container Apps

I den här självstudien lär du dig att skapa en Eureka-tjänst som är utformad för att förbli i drift vid fel och hög efterfrågan. Genom att skapa en Eureka-tjänst med hög tillgänglighet är tjänstregistret alltid tillgängligt för klienter oavsett efterfrågan.

Att uppnå hög tillgänglighetsstatus för Eureka inkluderar att länka flera Eureka-serverinstanser tillsammans som bildar ett kluster. Klustret tillhandahåller resurser så att om en Eureka-server misslyckas förblir de andra tjänsterna tillgängliga för begäranden.

I den här kursen får du:

  • Skapa en Eureka-server för Spring-komponenter.
  • Binda ihop två Eureka-servrar för Spring-komponenter till ett kluster.
  • Binda program till båda Eureka-servrarna för tjänstidentifiering med hög tillgänglighet.

Förutsättningar

För att slutföra det här projektet behöver du följande:

Krav Instruktioner
Azure-konto En aktiv prenumeration krävs. Om du inte har någon sådan nu kan du skapa en kostnadsfritt.
Azure CLI Installera Azure CLI.

Att tänka på

När du kör hanterade Java-komponenter i Azure Container Apps bör du vara medveten om följande information:

Artikel Förklaring
Definitionsområde Komponenter körs i samma miljö som den anslutna containerappen.
Skalning Komponenten kan inte skalas. Skalningsegenskaperna minReplicas och maxReplicas är båda inställda på 1.
Resurser Resursallokeringen av containrar för komponenter är fast. Antalet processorkärnor är 0,5 och minnesstorleken är 1Gi.
Prissättning Komponentfakturering faller under förbrukningsbaserad prissättning. Resurser som förbrukas av hanterade komponenter debiteras enligt aktiva/inaktiva priser. Du kan ta bort komponenter som inte längre används för att stoppa faktureringen.
Bindande Containerappar ansluter till en komponent via en bindning. Bindningarna matar in konfigurationer i miljövariabler för containerappar. När en bindning har upprättats kan containerappen läsa konfigurationsvärdena från miljövariabler och ansluta till komponenten.

Ställ in

Använd följande steg för att skapa ditt Eureka-tjänstkluster.

  1. Skapa variabler som innehåller programkonfigurationsvärden.

    export LOCATION=eastus
    export RESOURCE_GROUP=my-services-resource-group
    export ENVIRONMENT=my-environment
    export EUREKA_COMPONENT_FIRST=eureka01
    export EUREKA_COMPONENT_SECOND=eureka02
    export APP_NAME=sample-service-eureka-client
    export IMAGE="mcr.microsoft.com/javacomponents/samples/sample-service-eureka-client:latest"
    
  2. Logga in på Azure med Azure CLI.

    az login
    
  3. Skapa en resursgrupp.

    az group create --name $RESOURCE_GROUP --location $LOCATION
    
  4. Skapa din Container Apps-miljö.

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

Skapa ett kluster

Skapa sedan två Eureka-serverinstanser och länka ihop dem som ett kluster.

  1. Skapa två Eureka Server for Spring-komponenter.

    az containerapp env java-component eureka-server-for-spring create \
        --environment $ENVIRONMENT \
        --resource-group $RESOURCE_GROUP \
        --name $EUREKA_COMPONENT_FIRST
    
    az containerapp env java-component eureka-server-for-spring create \
        --environment $ENVIRONMENT \
        --resource-group $RESOURCE_GROUP \
        --name $EUREKA_COMPONENT_SECOND
    

Binda ihop komponenter

För att Eureka-servrarna ska fungera i en konfiguration med hög tillgänglighet måste de länkas samman.

  1. Bind den första Eureka-servern till den andra.

    az containerapp env java-component eureka-server-for-spring update \
        --environment $ENVIRONMENT \
        --resource-group $RESOURCE_GROUP \
        --name $EUREKA_COMPONENT_FIRST \
        --bind $EUREKA_COMPONENT_SECOND
    
  2. Bind den andra Eureka-servern till den första.

    az containerapp env java-component eureka-server-for-spring update \
        --environment $ENVIRONMENT \
        --resource-group $RESOURCE_GROUP \
        --name $EUREKA_COMPONENT_SECOND \
        --bind $EUREKA_COMPONENT_FIRST
    

Distribuera och binda programmet

Med serverkomponenterna länkade tillsammans kan du skapa containerappen och binda den till de två Eureka-komponenterna.

  1. Skapa containerappen.

    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
    
  2. Binda containerappen till den första Eureka-serverkomponenten.

    az containerapp update \
        --name $APP_NAME \
        --resource-group $RESOURCE_GROUP \
        --bind $EUREKA_COMPONENT_FIRST 
    
  3. Binda containerappen till den andra Eureka-serverkomponenten.

    az containerapp update \
        --name $APP_NAME \
        --resource-group $RESOURCE_GROUP \
        --bind $EUREKA_COMPONENT_SECOND
    

Visa instrumentpanelerna

Viktigt!

Om du vill visa instrumentpanelen måste du ha minst rollen Microsoft.App/managedEnvironments/write tilldelad till ditt konto på resursen för den hanterade miljön. Du kan antingen uttryckligen tilldela Owner eller Contributor roll för resursen eller följa stegen för att skapa en anpassad rolldefinition och tilldela den till ditt konto.

  1. Skapa den anpassade rolldefinitionen.

    az role definition create --role-definition '{
        "Name": "Java Component Dashboard Access",
        "IsCustom": true,
        "Description": "Can access managed Java Component dashboards in managed environments",
        "Actions": [
            "Microsoft.App/managedEnvironments/write"
        ],
        "AssignableScopes": ["/subscriptions/<SUBSCRIPTION_ID>"]
    }'
    

    Ersätt platshållaren mellan <> hakparenteserna i AssignableScopes värdet med ditt prenumerations-ID.

  2. Tilldela den anpassade rollen till ditt konto på resursen för hanterad miljö.

    Hämta resurs-ID för den hanterade miljön.

    export ENVIRONMENT_ID=$(az containerapp env show \
      --name $ENVIRONMENT --resource-group $RESOURCE_GROUP \
      --query id -o tsv)
    
  3. Tilldela rollen till ditt konto.

    Innan du kör det här kommandot ersätter du platshållaren mellan <> hakparenteserna med ditt användar- eller tjänsthuvudnamns-ID.

    az role assignment create \
      --assignee <USER_OR_SERVICE_PRINCIPAL_ID> \
      --role "Java Component Dashboard Access" \
      --scope $ENVIRONMENT_ID
    
  4. Hämta URL:en för Instrumentpanelen för Eureka Server for Spring.

    az containerapp env java-component eureka-server-for-spring show \
      --environment $ENVIRONMENT \
      --resource-group $RESOURCE_GROUP \
      --name $EUREKA_COMPONENT_FIRST \
      --query properties.ingress.fqdn -o tsv
    

    Det här kommandot returnerar den URL som du kan använda för att komma åt instrumentpanelen Eureka Server for Spring. Via instrumentpanelen kan du kontrollera att Konfigurationen av Eureka-servern består av två repliker.

    Skärmbild av en Eureka Server för Spring-instrumentpanel med hög tillgänglighet.

Rensa resurser

De resurser som skapas i den här självstudien påverkar din Azure-faktura. Om du inte ska använda dessa tjänster på lång sikt kör du följande kommando för att ta bort allt som skapats i den här självstudien.

az group delete \
    --resource-group $RESOURCE_GROUP

Nästa steg