Partilhar via


Alta disponibilidade

Importante

O Autoscaling Lakebase está disponível nas seguintes regiões: eastus, eastus2, centralus, southcentralus, westus, westus2, canadacentral, brazilsouth, northeurope, uksouth, westeurope, australiaeast, centralindia, southeastasia.

O Autoscaling do Lakebase é a versão mais recente do Lakebase, com computação autoescalável, escala até zero, ramificação e restauração instantânea. Se é utilizador do Lakebase Provisioned, consulte Lakebase Provisioned.

Alta disponibilidade combina um cálculo primário de leitura/escrita com uma ou mais instâncias secundárias distribuídas por zonas de disponibilidade. Quando a instância primária se torna indisponível, uma instância secundária de computação é automaticamente promovida e a sua aplicação continua a partir da última transação confirmada. A sua cadeia de ligação mantém-se inalterada.

Topologia de alta disponibilidade mostrando duas cadeias de ligação a encaminhar para as instâncias de computação primária e secundária em zonas de disponibilidade separadas, todas a ler a partir de armazenamento partilhado

Como funciona a alta disponibilidade

Um endpoint Lakebase é o endereço da base de dados ao qual a sua aplicação se liga. Um endpoint de alta disponibilidade expõe duas cadeias de ligação:

  • Primária ({endpoint-id}.database.{region}.databricks.com) — a sua principal ligação de leitura/escrita. Use isto em todas as aplicações que se liguem à sua base de dados. Após um failover, encaminha automaticamente para o cálculo que agora é principal.
  • Secundário ({endpoint-id}-ro.database.{region}.databricks.com) — disponível apenas quando Permitir acesso a instâncias de computação de leitura apenas está ativado. As instâncias secundárias de computação existem principalmente como instâncias de suporte para failover; Ativar o acesso de leitura permite-lhe também encaminhar consultas de leitura através delas.

Ambas as strings de ligação estão disponíveis no diálogo Connect no seu endpoint.

Por trás destas cadeias de ligação, um endpoint de alta disponibilidade tem sempre exatamente uma instância de computação primária e uma a três instâncias secundárias . O principal trata de todo o tráfego de leitura/escrita. As instâncias de computação secundárias correm em diferentes zonas de disponibilidade e são promovidas para se tornarem as primárias em caso de falha.

Cada instância secundária de computação tem uma definição de Access que determina se também serve tráfego de leitura:

Acesso secundário O que faz
somente leitura A instância secundária de computação serve leituras através da -ro cadeia de ligação e pode ser promovida como primária conforme necessário
Disabled A instância secundária de computação está ativa e pronta para failover, mas não serve tráfego de leitura

Controlas isto com a definição Permitir acesso a instâncias de computação só de leitura no endpoint, que está acessível através do menu Editar computação. Quando ativadas, todas as instâncias secundárias de computação servem as leituras; Quando desativadas, estão em standby apenas para failover. Em ambos os casos, o hardware de computação já está alocado e a funcionar: a promoção não requer novo provisionamento, pelo que a sua capacidade de failover está reservada independentemente da procura na zona de disponibilidade.

O separador de computação que exibe a instância primária (Leitura/Escrita) e três instâncias secundárias (Leitura apenas)

O separador Computes mostra rapidamente o Papel (Primário ou Secundário), Estado e Nível de Acesso de cada instância de computação.

Distribuição AZ

O Lakebase distribui as instâncias de computação primária e secundária entre zonas de disponibilidade, reduzindo o risco de uma única falha do AZ afetar tanto as instâncias primárias como todas as secundárias.

Autoscaling com alta disponibilidade

Todas as instâncias de computação numa configuração de alta disponibilidade partilham o mesmo intervalo de autoescalonamento. A diferença máxima entre o teu mínimo e máximo de CU é de 8 CU, o mesmo limite que para instâncias de computação independentes.

As instâncias de computação secundárias são sempre escaladas para pelo menos o mesmo tamanho de que a principal, garantindo que a capacidade da sua base de dados se mantém consistente após um failover.

Escalonar até zero não está disponível para instâncias de computação numa configuração de alta disponibilidade. Podes pausar manualmente todas as instâncias de computação, mas o teu endpoint ficará indisponível enquanto estiver pausado.

Instâncias de computação secundária vs. réplicas de leitura autónomas

Instâncias secundárias de computação e réplicas de leitura autónomas são características diferentes que podem coexistir no mesmo ramo:

Instâncias secundárias de computação Réplicas de leitura autónomas
Purpose Failover + descarga opcional de leitura Apenas transferência de leitura
Adicionado via Configuração de alta disponibilidade Adicionar Ler Réplica
Participa em failover Sim No
Cadeia de ligação -ro no ponto final primário Ponto final separado próprio
Sizing Partilhado com o principal (nível de endpoint) Dimensionado de forma independente

Quando precisas de alta disponibilidade e capacidade adicional de leitura para além do que as tuas instâncias secundárias fornecem, podes combinar ambas as funcionalidades no mesmo ramo. Ver Ler réplicas.

Comportamento de failover

Failover automático

O Lakebase monitoriza continuamente a saúde primária do computador. Se o primário ficar indisponível, o failover é acionado automaticamente.

O failover preserva todas as transações confirmadas.

Fases de failover: Funcionamento normal, principal indisponível após deteção, failover em curso com promoção, depois serviço restaurado com a mesma cadeia de ligação e sem perda de dados

Após o failover, a string de conexão principal ({endpoint-id}.database.{region}.databricks.com) redireciona automaticamente para a instância de computação recém-promovida. As aplicações não precisam de alterar a configuração da sua ligação, mas as ligações existentes são terminadas durante o failover e têm de se reconectar. Aplicações com lógica de tentativa tratam isto automaticamente.

Failover com acesso apenas de leitura habilitado

Quando Permitir acesso a instâncias de computação apenas de leitura é ativado e ocorre um failover, o secundário promovido torna-se o novo primário e deixa de servir as leituras. Se tiver dois ou mais secundários legíveis, o tráfego de leitura na -ro cadeia de ligação continua a capacidade reduzida até que um substituto seja provisionado. Se tiveres apenas um, as leituras são totalmente interrompidas até que a substituição esteja pronta.

Cadeias de ligação

O diálogo Connect mostra ambas as cadeias de ligação com o seu estado atual de computação:

Opção de cálculo na caixa de diálogo Conectar Cadeia de ligação Uso para
Primary (name) ● Active {endpoint-id}.database.{region}.databricks.com Todas as operações de escrita; leituras que devem atingir a primária atual
Secondary (name) ● Active RO {endpoint-id}-ro.database.{region}.databricks.com Transferência de leitura para instâncias secundárias de computação (disponível apenas quando permitir acesso a instâncias de computação de leitura apenas está ativado)

A cadeia de conexão primária é sempre encaminhada para o primário atual, incluindo após uma falha.

Cada instância de computação tem também a sua própria cadeia de ligação direta, acessível a partir do separador Computes através do menu de ações (⋮) em cada linha. As ligações diretas destinam-se à resolução de problemas de instâncias individuais de computação, não para uso em aplicações. As cadeias de conexão direta são específicas de cada instância de computação e podem mudar quando as instâncias secundárias são adicionadas, removidas, ou promovidas.

Limites de disponibilidade elevados

Limit valor
Instâncias de computação 2, 3 ou 4 (1 primária + 1–3 instâncias de computação secundárias)
Alcance de escalada automática (máximo − mínimo) ≤ 8 CU entre o mínimo e o máximo
Reduzir para zero Não disponível para instâncias de computação numa configuração de alta disponibilidade

Melhores práticas

Seguir estas práticas ajuda a sua aplicação a manter-se resiliente e disponível durante eventos de failover.

Practice Detalhes
Implementar lógica de reintento de conexão As ligações ativas são terminadas durante o failover. As ligações ao primário avariado podem bloquear até expirar — configure o TCP keepalives ou um timeout de ligação no seu driver para detetar a falha rapidamente. As ligações ao secundário promovido são ativamente terminadas, retornando um erro imediatamente. Aplicações com lógica de nova tentativa reconectam-se automaticamente em segundos.
Configure a contagem secundária para o seu caso de uso Cada instância secundária de computação representa hardware pré-alocado reservado para failover. Reduzir o número de secundários significa menos capacidade de failover e menos zonas de disponibilidade cobertas. Uma instância secundária de computação fornece cobertura de failover. Se ativares secundários legíveis, configura dois ou mais. Com apenas uma, as leituras são totalmente interrompidas durante um failover até que uma substituição seja provisionada.
Evite sobrecarregar instâncias secundárias de computação O serviço pode reiniciar uma instância secundária de computação que esteja sobrecarregada ou a ficar atrasada. Monitore a carga de consultas e o número de ligações, e aumente o tamanho da CU caso observe uma utilização elevada e sustentada.

Passos seguintes