Alta disponibilidade no Cache na Função do Azure

Importante

A Microsoft recomenda que todos os novos desenvolvimentos usem o Cache Redis do Azure. Para obter documentação e diretrizes atuais sobre como escolher uma oferta do Cache do Azure, confira qual oferta do Cache do Azure é certa para mim?

In-Role Cache permite que você mantenha a alta disponibilidade para objetos armazenados em cache. Use as propriedades da função do Azure para habilitar a alta disponibilidade para cada cache que requer esse recurso. Nenhuma alteração de código é necessária; você só precisa recalcular a capacidade de memória exigida pela sua carga de trabalho. Isso pode ser feito ativando a configuração Alta Disponibilidade na planilha de planejamento de capacidade. Para obter mais informações, consulte Considerações de planejamento de capacidade para o Cache de In-Role do Azure.

Com a alta disponibilidade, os objetos em cache são replicados dentro da mesma implantação do serviço de nuvem para proporcionar resiliência contra falhas de hardware. Cópias secundárias também são colocadas em diferentes domínios de falha e domínios de atualização para aumentar a disponibilidade. Se uma das máquinas virtuais no cluster de cache ficar indisponível por qualquer motivo, o cluster poderá usar as cópias secundárias para evitar a perda de dados.

Arquitetura

A alta disponibilidade requer várias instâncias da função associada. Uma segunda cópia do item em cache é mantida em uma instância separada, pertencente a um domínio de falha e domínio de atualização diferente. Assim, se uma instância ficar indisponível, haverá uma cópia de backup em outra instância. Nesse cenário, a cópia secundária é promovida para cópia primária. Uma nova cópia secundária então é criada em uma das instâncias remanescentes para manter a alta disponibilidade.

Para implementar a alta disponibilidade, todas as gravações em cache são feitas nas cópias primária e secundária.

Observação

Observe que, mesmo quando a alta disponibilidade está desabilitada, o cluster de cache tenta preservar os dados durante desligamentos planejados, como, por exemplo, uma reinicialização. Nesse cenário, o cluster de cache tenta transferir os itens em cache para outros servidores antes do desligamento. Entretanto, dependendo da quantidade de dados para serem transferidos, a conclusão desse desligamento normal não é garantida. Além disso, diferentemente do que acontece na alta disponibilidade, os dados não são preservados durante desligamentos inesperados.

Considerações

A função que hospeda In-Role Cache deve ser configurada para ser executada em pelo menos quatro instâncias. A alta disponibilidade pode ser habilitada em funções configuradas para duas ou três instâncias em execução, mas isso não é recomendado pelas duas razões expostas a seguir.

  • Às vezes, o Azure reinicializa máquinas virtuais para manutenção de rotina. As atualizações de um aplicativo local também colocam as máquinas virtuais offline. Em ambos os cenários, é melhor ter pelo menos três servidores no cluster de cache. Assim, caso um dos servidores fique inoperante, o cluster de cache ainda terá três servidores para criar cópias primárias e secundárias dos objetos em cache. Com apenas um servidor em execução, o cache continua acessível, mas a alta disponibilidade é impossível.

  • Embora três servidores atendam aos requisitos mencionados anteriormente, recomenda-se usar quatro servidores. Isso ajuda a distribuir mais uniformemente as cópias primárias entre domínios de falha. Os dados são melhor distribuídos no cluster de cache, o que, por sua vez, melhora os padrões de tráfego e o desempenho da rede.

Quando uma instância fica indisponível, há um breve período de tempo durante o qual as cópias secundárias são promovidas para primárias e as informações de roteamento são atualizadas. Durante esse tempo, os clientes recebem exceções DataCacheException com um ErrorCode de RetryLater. In-Role Aplicativos de cache devem usar a lógica normal de tratamento de erros e repetição para reagir corretamente a essa condição.

Como todas as gravações são feitas simultaneamente nas cópias primária e secundária, a alta disponibilidade aumenta a latência e diminui a taxa de transferência. Essa pode ser uma compensação razoável pelos benefícios proporcionados pelos caches com alta disponibilidade.

Importante

Por definição, o uso de alta disponibilidade multiplica por dois a quantidade de memória necessária para cada item armazenado em cache. Considere esse impacto de memória durante as tarefas de planejamento da capacidade. Para obter mais informações, consulte Considerações de planejamento de capacidade para o Cache de In-Role do Azure.

Para habilitar a alta disponibilidade

  1. Clique duas vezes na função que tem In-Role Cache habilitado.

  2. Na guia Configuração, verifique se a Contagem de instâncias é 4 ou mais.

  3. Na guia Cache, marque a caixa de seleção Alta Disponibilidade do cache que requer alta disponibilidade. A captura de tela a seguir mostra a Alta Disponibilidade habilitada em dois dos três caches.

    Caching Backup Copies

Consulte Também

Conceitos

Recursos de cache na função no cache do Azure