Partilhar via


Tutorial: Simular uma falha na leitura de dados da região primária

Este tutorial é a segunda parte de uma série. Nele, você aprenderá sobre os benefícios do armazenamento redundante de zona geográfica de acesso de leitura (RA-GZRS) simulando uma falha.

Para simular uma falha, você pode usar o roteamento estático ou o Fiddler. Ambos os métodos permitirão simular a falha de solicitações para o ponto de extremidade primário da sua conta de armazenamento RA-GZRS, levando o aplicativo a efetuar leituras a partir do ponto de extremidade secundário.

Se não tiver uma subscrição do Azure, crie uma conta gratuita antes de começar.

Na segunda parte da série, saiba como:

Pré-requisitos

Antes de começar este tutorial, conclua o tutorial anterior: Tornar os dados do seu aplicativo altamente disponíveis com o armazenamento do Azure.

Para simular uma falha com roteamento estático, você usará um prompt de comando elevado.

Para simular uma falha usando o Fiddler, baixe e instale o Fiddler

Simular uma falha com uma rota estática inválida

Você pode criar uma rota estática inválida para todas as requisições ao ponto de extremidade principal da sua conta de armazenamento RA-GZRS. Neste tutorial, o host local é usado como o gateway para rotear solicitações para a conta de armazenamento. Usar o host local como gateway faz com que todas as solicitações para o ponto de extremidade principal da conta de armazenamento sejam redirecionadas de volta para dentro do host, o que resulta em falha na solicitação. Siga as etapas a seguir para simular uma falha e a restauração do ponto de extremidade primário com uma rota estática inválida.

Iniciar e pausar o aplicativo

Use as instruções no tutorial anterior para iniciar o exemplo e baixar o arquivo de teste, confirmando que ele vem do armazenamento primário. Dependendo da plataforma de destino, poderá pausar manualmente a amostra ou aguardar no prompt.

Simular falha

Enquanto o aplicativo está pausado, abra um prompt de comando no Windows como administrador ou execute o terminal como root no Linux.

Obtenha informações sobre o domínio do ponto de extremidade primário da conta de armazenamento inserindo o seguinte comando em um prompt de comando ou terminal, substituindo STORAGEACCOUNTNAME pelo nome da sua conta de armazenamento.

nslookup STORAGEACCOUNTNAME.blob.core.windows.net

Copie o endereço IP da sua conta de armazenamento para um editor de texto para utilizar mais tarde.

Para obter o endereço IP do seu host local, digite ipconfig no prompt de comando do Windows ou ifconfig no terminal Linux.

Para adicionar uma rota estática para um host de destino, digite o seguinte comando em um prompt de comando do Windows ou terminal Linux, substituindo <destination_ip> pelo endereço IP da conta de armazenamento e <gateway_ip> pelo endereço IP do host local.

Linux

sudo route add <destination_ip> gw <gateway_ip>

Windows

route add <destination_ip> <gateway_ip>

Na janela com o exemplo em execução, retome o aplicativo ou pressione a tecla apropriada para baixar o arquivo de exemplo e confirmar que ele vem do armazenamento secundário. Em seguida, você pode pausar a amostra novamente ou aguardar no prompt.

Simule a restauração do ponto de extremidade primário

Para simular que o ponto de extremidade primário se torne funcional novamente, exclua a rota estática inválida da tabela de roteamento. Isso permite que todas as solicitações para o ponto de extremidade primário sejam roteadas por meio do gateway padrão. Digite o seguinte comando em um prompt de comando do Windows ou terminal Linux.

Linux

sudo route del <destination_ip> gw <gateway_ip>

Windows

route delete <destination_ip>

Em seguida, você pode retomar o aplicativo ou pressionar a tecla apropriada para baixar o arquivo de exemplo novamente, desta vez confirmando que ele vem mais uma vez do armazenamento primário.

Simule uma falha com o Fiddler

Para simular uma falha com o Fiddler, injeta-se uma resposta de erro para pedidos ao endpoint primário da conta de armazenamento RA-GZRS.

As seções a seguir descrevem como simular uma falha e a restauração do ponto final principal com o Fiddler.

Iniciar Fiddler

Abra o Fiddler, selecione Regras e Personalizar Regras.

Personalizar regras do Fiddler

O Fiddler ScriptEditor é iniciado e exibe o arquivo SampleRules.js . Este arquivo é usado para personalizar o Fiddler.

Cole o exemplo de código a seguir na OnBeforeResponse função, substituindo STORAGEACCOUNTNAME pelo nome da sua conta de armazenamento. Dependendo da amostra, você também pode precisar substituir HelloWorld pelo nome do arquivo de teste que está sendo baixado ou remover essa parte da condição se ela não se aplicar. O novo código é comentado para garantir que não seja executado imediatamente.

Depois de concluído, selecione Arquivo e Salvar para salvar as alterações. Deixe a janela do Editor de Scripts aberta para uso nas etapas a seguir.

    /*
        // Simulate data center failure
        // After it is successfully downloading the blob, pause the code in the sample,
        // uncomment these lines of script, and save the script.
        // It will intercept the (probably successful) responses and send back a 503 error.
        // When you're ready to stop sending back errors, comment these lines of script out again
        //     and save the changes.

        if ((oSession.hostname == "STORAGEACCOUNTNAME.blob.core.windows.net")
            // depending on the sample, you may need to modify or remove the line below
            && (oSession.PathAndQuery.Contains("HelloWorld"))) {
            oSession.responseCode = 503;
        }
    */

Colar regra personalizada

Iniciar e pausar o aplicativo

Use as instruções no tutorial anterior para iniciar o exemplo e baixar o arquivo de teste, confirmando que ele vem do armazenamento primário. Dependendo da plataforma de destino, poderá pausar manualmente a amostra ou aguardar no prompt.

Simular falha

Enquanto a aplicação estiver pausada, volte para o Fiddler e desfaça o comentário da regra personalizada que guardou na função OnBeforeResponse. Certifique-se de selecionar Arquivo e Salvar para salvar as alterações para que a regra entre em vigor. Esse código procura solicitações para a conta de armazenamento RA-GZRS e, se o caminho contiver o nome do arquivo de exemplo, retornará um código de resposta de 503 - Service Unavailable.

Na janela com o exemplo em execução, retome o aplicativo ou pressione a tecla apropriada para baixar o arquivo de exemplo e confirmar que ele vem do armazenamento secundário. Em seguida, você pode pausar a amostra novamente ou aguardar no prompt.

Simule a restauração do ponto de extremidade primário

No Fiddler, remova ou comente a regra personalizada novamente. Selecione Arquivo e Salvar para garantir que a regra não estará mais em vigor.

Na janela com o exemplo em execução, retome o aplicativo ou pressione a tecla apropriada para baixar o arquivo de exemplo e confirmar que ele vem do armazenamento primário mais uma vez. Em seguida, você pode sair da amostra.

Próximos passos

Na segunda parte da série, você aprendeu sobre como simular uma falha ao testar o armazenamento com redundância geográfica de acesso de leitura.

Para saber mais sobre como funciona o armazenamento RA-GZRS e seus riscos associados, consulte Projetando aplicativos HA com RA-GZRS.