Compartilhar via


Alta disponibilidade

Importante

O dimensionamento automático do Lakebase está disponível nas seguintes regiões: eastus, , eastus2, centralus, southcentralus, , westus, westus2, canadacentral, , brazilsouth, , northeurope, uksouth, , westeurope, , australiaeast, centralindiasoutheastasia.

O Dimensionamento Automático do Lakebase é a versão mais recente do Lakebase, com computação de dimensionamento automático, escala para zero, ramificação e restauração instantânea. Se você for um usuário provisionado do Lakebase, consulte Lakebase Provisioned.

A alta disponibilidade emparelha uma computação de leitura/gravação primária com uma ou mais instâncias de computação secundárias distribuídas entre zonas de disponibilidade. Quando o primário fica indisponível, uma instância de processamento secundária é promovida automaticamente e seu aplicativo continua a partir da última transação confirmada. Sua cadeia de conexão permanece inalterada.

Topologia de alta disponibilidade mostrando duas cadeias de conexão roteando para as instâncias de computação primária e secundária em zonas de disponibilidade separadas, todas lendo do armazenamento compartilhado

Como a alta disponibilidade funciona

Um ponto de extremidade do Lakebase é o endereço de banco de dados ao qual seu aplicativo se conecta. Um endpoint de alta disponibilidade expõe duas cadeias de conexão:

  • Primário ({endpoint-id}.database.{region}.databricks.com) – sua conexão principal de leitura/gravação. Use isso em todos os aplicativos que se conectam ao banco de dados. Após um failover, ele roteia automaticamente para qualquer computação que agora seja primária.
  • Secundário ({endpoint-id}-ro.database.{region}.databricks.com) — disponível somente quando Permitir acesso a instâncias de computação somente leitura está habilitada. As instâncias de computação secundárias existem principalmente como standby de failover; habilitar o acesso de leitura permite ainda o roteamento de consultas de leitura entre elas.

Ambas as cadeias de conexão estão disponíveis na caixa de diálogo Conectar do seu endpoint.

Por trás dessas cadeias de conexão, um ponto de extremidade de alta disponibilidade sempre tem exatamente uma instância de computação primária e uma a três instâncias de computação secundárias . O servidor primário gerencia todo o tráfego de leitura/escrita. Instâncias de computação secundárias são executadas em zonas de disponibilidade diferentes e são promovidas para se tornarem as primárias no caso de uma falha.

Cada instância de computação secundária tem uma configuração de Acesso que determina se ela também atende ao tráfego de leitura:

Acesso secundário O que faz
Somente leitura A instância de computação secundária serve leituras por meio da -ro cadeia de conexão e pode ser promovida como primária conforme necessário
Desactivado A instância de computação secundária está ativa e pronta para failover, mas não atende ao tráfego de leitura

Você controla isso com a configuração Permitir acesso a instâncias de computação somente leitura no endpoint, que você pode acessar na gaveta Editar computação. Quando habilitadas, todas as instâncias de computação secundárias servem leituras; quando desabilitadas, elas estão prontas em espera apenas para failover. Em ambos os casos, o hardware de computação já está alocado e em execução: a promoção não requer nenhum novo provisionamento, portanto, sua capacidade de failover é reservada independentemente da demanda na zona de disponibilidade.

Aba de Computação exibindo Instância Principal (Leitura/Gravação) e três instâncias de computação secundárias (somente leitura)

A guia Computação mostra a função de cada instância de computação (primária ou secundária), status e nível de acesso em um relance.

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 que uma única falha do AZ afete as instâncias de computação primária e secundária.

Escalonamento automático em alta disponibilidade

Todas as instâncias de computação em uma configuração de alta disponibilidade compartilham o mesmo intervalo de dimensionamento automático. A diferença máxima entre o seu mínimo e máximo de CUs é de 8 CUs, o mesmo limite de instâncias de computação autônomas.

As instâncias de computação secundárias são sempre dimensionadas para, pelo menos, o mesmo tamanho de Unidades de Computação (UC) do que o primário, garantindo que a capacidade do banco de dados permaneça consistente após um failover.

A escala para zero não está disponível para instâncias de processamento em uma configuração de alta disponibilidade. Você pode pausar manualmente todas as instâncias de computação, mas seu ponto de extremidade ficará indisponível durante a pausa.

Instâncias de computação secundárias versus réplicas de leitura autônomas

Instâncias de computação secundárias e réplicas de leitura autônomas são recursos diferentes que podem coexistir no mesmo branch:

Instâncias de computação secundárias Réplicas de leitura independentes
Propósito Failover + delegação de leitura opcional Somente leitura e descarregamento
Adicionado através de Configuração de alta disponibilidade Adicionar réplica de leitura
Participa no processo de failover Sim No
string de conexão -ro no ponto de extremidade primário Próprio ponto de extremidade separado
Dimensionamento Compartilhado com primário (nível de ponto de extremidade) Dimensionado de forma independente

Quando você precisa de alta disponibilidade e capacidade de leitura adicional além do que suas instâncias de computação secundárias fornecem, você pode combinar ambos os recursos no mesmo branch. Consulte réplicas de leitura.

Comportamento de failover

Failover automático

O Lakebase monitora continuamente a integridade da computação primária. Se o primário ficar indisponível, o failover será disparado automaticamente.

O failover preserva todas as transações confirmadas.

Fases de failover: operação normal, primário indisponível após a detecção, failover em andamento com promoção, serviço restaurado com a mesma cadeia de conexão e sem perda de dados

Após o failover, a cadeia de conexão primária ({endpoint-id}.database.{region}.databricks.com) roteia automaticamente para a instância de computação recém-promovida. Os aplicativos não precisam alterar a configuração de conexão, mas as conexões existentes são encerradas durante o failover e devem se reconectar. Aplicativos com lógica de repetição lidam com isso automaticamente.

Failover com acesso somente leitura habilitado

Quando Permitir acesso a instâncias de computação somente leitura é habilitado e ocorre um failover, o secundário promovido se torna o novo primário e para de realizar leituras. Se você tiver dois ou mais secundários legíveis, o tráfego de leitura na string de conexão -ro continuará com capacidade reduzida até que uma substituição seja provisionada. Se você tiver apenas um, as leituras serão totalmente interrompidas até que a substituição esteja pronta.

Cadeias de conexão

A caixa de diálogo Conectar mostra ambas as cadeias de conexão com seu status de computação atual:

Opção de computação na caixa de diálogo Conectar string de conexão Use para
Primary (name) ● Active {endpoint-id}.database.{region}.databricks.com Todas as gravações e leituras que devem atingir o primário atual
Secondary (name) ● Active RO {endpoint-id}-ro.database.{region}.databricks.com Descarregar leitura para instâncias de computação secundárias (disponível somente quando Permitir acesso a instâncias de computação somente leitura está habilitado)

A string de conexão primária sempre roteia para o servidor primário atual, inclusive após um failover.

Cada instância de computação também tem sua própria cadeia de conexão direta, acessível na guia Computação por meio do menu ações (⋮) em cada linha. As conexões diretas destinam-se à solução de problemas de instâncias de computação individuais, não para uso de aplicativos. Cadeias de conexão diretas são específicas para cada instância e podem ser alteradas quando secundários são adicionados, removidos ou promovidos.

Limites de alta disponibilidade

Limit Valor
Instâncias de computação 2, 3 ou 4 (1 instâncias de computação primárias + 1 a 3 secundárias)
Intervalo de dimensionamento automático (máximo – mínimo) ≤ 8 CU entre o mínimo e o máximo
Escala para zero Não disponível para instâncias de computação em uma configuração de alta disponibilidade

Práticas recomendadas

Seguir essas práticas ajuda seu aplicativo a permanecer resiliente e disponível durante eventos de failover.

Prática Detalhes
Implementar lógica de repetição de conexão As conexões ativas são encerradas durante o failover. As conexões com o primário com falha podem ficar pendentes até atingir o tempo limite — configure keepalives TCP ou defina um tempo limite de conexão no seu driver para detectar a falha prontamente. As conexões com o secundário que está sendo promovido são encerradas ativamente, retornando um erro imediatamente. Aplicativos com lógica de repetição se reconectam automaticamente em segundos.
Configurar a contagem secundária para seu caso de uso Cada instância de computação secundária representa o hardware pré-alocado reservado para failover. Reduzir sua contagem secundária significa ter menos capacidade de failover e cobrir menos zonas de disponibilidade. Uma instância de computação secundária fornece cobertura de tolerância a falhas. Se você habilitar secundários legíveis, configure dois ou mais. Com apenas um dispositivo, as leituras são totalmente interrompidas durante um failover até que um substituto seja provisionado.
Evite sobrecarregar instâncias de computação secundárias O serviço pode reiniciar uma instância de computação secundária que está sobrecarregada ou ficando para trás. Monitore a carga de consulta e as contagens de conexão e aumente o tamanho da Unidade de Computação (CU) se observar uma alta utilização sustentada.

Próximas Etapas