Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Neste tutorial, descobre como criar um serviço Eureka concebido para se manter operacional perante falhas e alta procura. Construir um serviço Eureka altamente disponível ajuda a garantir que o registo de serviços que utiliza para aplicações Azure Container está sempre disponível para os clientes, independentemente da procura.
Alcançar o estatuto de alta disponibilidade do Eureka inclui ligar múltiplas instâncias de servidores Eureka para que formem um cluster. O cluster fornece recursos para que, se um servidor Eureka falhar, os outros serviços permaneçam disponíveis para solicitações.
Neste tutorial:
- Crie servidores Eureka para componentes Spring.
- Associe dois servidores Eureka para componentes do Spring em um cluster.
- Vincule uma aplicação a ambos os servidores Eureka para assegurar uma alta disponibilidade na descoberta de serviços.
Pré-requisitos
- Uma conta do Azure com uma subscrição ativa. Se ainda não tiver um, pode criar um gratuitamente.
- CLI do Azure.
Considerações
Quando executar componentes Java geridos em Aplicações Container, esteja ciente dos seguintes detalhes:
| Item | Explicação |
|---|---|
| Âmbito | Os componentes são executados no mesmo ambiente que o aplicativo de contêiner conectado. |
| Dimensionamento | Os componentes não podem escalar. As propriedades minReplicas de dimensionamento e maxReplicas estão ambas definidas como 1. |
| Recursos | A alocação de recursos de contêiner para componentes é fixa. O número de núcleos de CPU é 0,5 e o tamanho da memória é 1 GB. |
| Preços | A faturação dos componentes enquadra-se nos preços baseados no consumo. Os recursos consumidos pelos componentes geridos são faturados às taxas ativas ou ociosas, dependendo do uso de recursos. Você pode excluir componentes que não estão mais em uso para interromper a cobrança. |
| Enlace | Os aplicativos de contêiner se conectam a um componente por meio de uma ligação. As associações injetam configurações em variáveis de ambiente do aplicativo de contêiner. Depois que uma associação é estabelecida, o aplicativo contêiner pode ler os valores de configuração das variáveis de ambiente e se conectar ao componente. |
Estabelecer recursos iniciais
Use os passos seguintes para criar alguns recursos de que precisa para o seu cluster de serviços Eureka.
Crie variáveis que contenham valores de configuração do aplicativo.
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"Use o CLI do Azure para iniciar sessão no Azure.
az loginCrie um grupo de recursos.
az group create --name $RESOURCE_GROUP --location $LOCATIONCrie seu ambiente de aplicativos de contêiner.
az containerapp env create \ --name $ENVIRONMENT \ --resource-group $RESOURCE_GROUP \ --location $LOCATION
Criar servidores para um cluster
Crie dois componentes do Eureka Server for Spring.
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
Liga componentes para formar um cluster
Para que os servidores Eureka funcionem numa configuração de alta disponibilidade, precisam de estar ligados como um cluster.
Vincule o primeiro servidor Eureka ao segundo.
az containerapp env java-component eureka-server-for-spring update \ --environment $ENVIRONMENT \ --resource-group $RESOURCE_GROUP \ --name $EUREKA_COMPONENT_FIRST \ --bind $EUREKA_COMPONENT_SECONDLigue o segundo servidor Eureka ao primeiro.
az containerapp env java-component eureka-server-for-spring update \ --environment $ENVIRONMENT \ --resource-group $RESOURCE_GROUP \ --name $EUREKA_COMPONENT_SECOND \ --bind $EUREKA_COMPONENT_FIRST
Implantar e vincular o aplicativo
Com os componentes do servidor ligados, podes criar a aplicação container e associá-la aos dois componentes Eureka.
Crie o aplicativo de contêiner.
az containerapp create \ --name $APP_NAME \ --resource-group $RESOURCE_GROUP \ --environment $ENVIRONMENT \ --image $IMAGE \ --min-replicas 1 \ --max-replicas 1 \ --ingress external \ --target-port 8080Associe o aplicativo contêiner ao primeiro componente do servidor Eureka.
az containerapp update \ --name $APP_NAME \ --resource-group $RESOURCE_GROUP \ --bind $EUREKA_COMPONENT_FIRSTAssocie o aplicativo contêiner ao segundo componente do servidor Eureka.
az containerapp update \ --name $APP_NAME \ --resource-group $RESOURCE_GROUP \ --bind $EUREKA_COMPONENT_SECOND
Visualizar o painel
Importante
Para visualizar o painel do Eureka Server for Spring, precisa de ter a função Microsoft.App/managedEnvironments/write, Owner ou Contributor atribuída à sua conta para o ambiente de Container Apps.
- Se já tem uma destas funções, vá para a secção Obter o URL do painel para obter o URL e visualizar o painel.
- Se quiser criar uma definição de função personalizada e atribuí-la à sua conta, siga os passos da secção seguinte: Criar e atribuir uma função personalizada.
- Se quiseres atribuir à tua conta a função
OwnerouContributorpara o recurso, faz essa atribuição e depois vá para a secção do Obter o URL do painel.
Criar e atribuir uma função personalizada
Crie a definição de função personalizada. Antes de executar este comando, substitua o marcador no
AssignableScopesvalor pelo seu ID de subscrição.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>"] }'Obtenha o ID de recurso do ambiente Container Apps.
export ENVIRONMENT_ID=$(az containerapp env show \ --name $ENVIRONMENT --resource-group $RESOURCE_GROUP \ --query id \ --output tsv)Atribui o papel personalizado à tua conta para o recurso de ambiente Container Apps. Antes de executar este comando, substitua o marcador no valor
assigneepelo ID do objeto de utilizador ou o ID do principal do serviço.az role assignment create \ --assignee <USER_OR_SERVICE_PRINCIPAL_ID> \ --role "Java Component Dashboard Access" \ --scope $ENVIRONMENT_ID
Obtenha o URL do dashboard
Obtenha o URL do painel do 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 \
--output tsv
Este comando devolve o URL que pode utilizar para aceder ao painel do Eureka Server for Spring. Através do painel, você pode verificar se a configuração do servidor Eureka consiste em duas réplicas.
Clean up resources (Limpar recursos)
Os recursos criados neste tutorial afetam a sua conta Azure. Se não vais usar estes serviços a longo prazo, executa o comando seguinte para remover tudo o que foi criado neste tutorial.
az group delete --resource-group $RESOURCE_GROUP