Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Neste tutorial, você descobrirá como criar um serviço Eureka projetado para permanecer operacional diante de falhas e alta demanda. A criação de um serviço Eureka altamente disponível ajuda a garantir que o registro de serviço usado para Aplicativos de Contêiner do Azure esteja sempre disponível para os clientes, independentemente da demanda.
Alcançar o status de alta disponibilidade do Eureka inclui vincular várias instâncias de servidor Eureka para que elas 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, você:
- Crie servidores Eureka para componentes spring.
- Associe dois servidores Eureka para componentes do Spring em um cluster.
- Associe um aplicativo de contêiner a ambos os servidores Eureka para descoberta de serviços com alta disponibilidade.
Pré-requisitos
- Uma conta do Azure com uma assinatura ativa. Caso ainda não tenha, você pode criar uma gratuitamente.
- O CLI do Azure.
Considerações
Ao executar componentes Java gerenciados em Aplicativos de Contêiner, lembre-se dos seguintes detalhes:
| Item | Explicação |
|---|---|
| Scope | Os componentes são executados no mesmo ambiente que o aplicativo de contêiner conectado. |
| Scaling | Os componentes não podem ser dimensionados. As propriedades de dimensionamento minReplicas e maxReplicas estão definidas como 1. |
| Recursos | A alocação de recursos do contêiner para componentes é fixa. O número de núcleos de CPU é 0,5 e o tamanho da memória é de 1 GB. |
| Preços | A cobrança do complemento é incluída na categoria de preços baseados em consumo. Os recursos consumidos por componentes gerenciados são cobrados pelas taxas ativas ou ociosas, dependendo do uso do recurso. Você pode excluir componentes que não estão mais em uso para interromper a cobrança. |
| Associação | Os aplicativos de contêiner se conectam a um componente por meio de uma vinculação. As associações injetam as configurações nas variáveis de ambiente do aplicativo de contêiner. Depois que uma associação for estabelecida, o aplicativo de contêiner poderá ler os valores de configuração das variáveis de ambiente e se conectar ao componente. |
Configurar recursos iniciais
Use as etapas a seguir para criar alguns recursos necessários para o cluster de serviço do 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 a CLI do Azure para entrar no Azure.
az loginCrie um grupos 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 Servidor Eureka para 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
Associar componentes para formar um cluster
Para que os servidores Eureka funcionem em uma configuração de alta disponibilidade, eles precisam ser vinculados como um cluster.
Associe 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_SECONDAssocie 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 associar o aplicativo
Com os componentes do servidor vinculados, você pode criar o aplicativo de contêiner e associá-lo 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 de contêiner ao primeiro componente do servidor Eureka.
az containerapp update \ --name $APP_NAME \ --resource-group $RESOURCE_GROUP \ --bind $EUREKA_COMPONENT_FIRSTAssocie o aplicativo de contêiner ao segundo componente do servidor Eureka.
az containerapp update \ --name $APP_NAME \ --resource-group $RESOURCE_GROUP \ --bind $EUREKA_COMPONENT_SECOND
Exibir o painel
Importante
Para exibir o painel do Servidor Eureka para Spring, você precisa ter as funções Microsoft.App/managedEnvironments/write, Owner ou Contributor atribuídas à sua conta para o recurso de ambiente de aplicativos de contêineres.
- Se você já tiver uma dessas funções, vá para a seção Obter a URL do painel para obter a URL e exibir o painel.
- Se você quiser criar uma definição de função personalizada e atribuí-la à sua conta, execute as etapas na seção a seguir, crie e atribua uma função personalizada.
- Se você quiser atribuir à sua conta a função
OwnerouContributorpara o recurso, faça essa atribuição e vá para a seção Obter a URL do painel.
Criar e atribuir uma função personalizada
Criar a definição de função personalizada. Antes de executar esse comando, substitua o valor
AssignableScopespelo identificador de assinatura.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 identificador de recurso do ambiente de Aplicativos de Contêiner.
export ENVIRONMENT_ID=$(az containerapp env show \ --name $ENVIRONMENT --resource-group $RESOURCE_GROUP \ --query id \ --output tsv)Atribua a função personalizada à sua conta para o recurso de ambiente de Aplicativos de Contêiner. Antes de executar esse comando, substitua o espaço reservado no valor
assigneepela ID do objeto de usuário ou pela ID da entidade de serviço.az role assignment create \ --assignee <USER_OR_SERVICE_PRINCIPAL_ID> \ --role "Java Component Dashboard Access" \ --scope $ENVIRONMENT_ID
Obter a URL do painel
Obtenha a URL do painel de controle do Servidor Eureka para 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
Esse comando retorna a URL que você pode usar para acessar o painel de controle do Servidor Eureka para Spring. Por meio do painel, você pode verificar se a configuração do servidor Eureka consiste em duas réplicas.
Limpar os recursos
Os recursos criados neste tutorial afetam sua fatura do Azure. Se você não usar esses serviços a longo prazo, execute o comando a seguir para remover tudo o que foi criado neste tutorial.
az group delete --resource-group $RESOURCE_GROUP