Compartir vía


Alta disponibilidad

Importante

El escalado automático de Lakebase es la versión más reciente de Lakebase, con proceso de escalado automático, escalado a cero, bifurcación y restauración instantánea. Para ver las regiones admitidas, consulte Disponibilidad de regiones. Si es un usuario aprovisionado de Lakebase, consulte Aprovisionamiento de Lakebase.

Pares de alta disponibilidad combinan una instancia de cálculo primaria de lectura/escritura con una o varias instancias de cálculo secundarias distribuidas en varias zonas de disponibilidad. Cuando la principal deja de estar disponible, se promueve automáticamente una instancia de proceso secundaria y la aplicación continúa desde la última transacción confirmada. La cadena de conexión permanece sin cambios.

Topología de alta disponibilidad que muestra dos cadenas de conexión que se enrutan a las instancias de cálculo principal y secundaria en zonas de disponibilidad independientes, ambas accediendo a almacenamiento compartido

Funcionamiento de la alta disponibilidad

Un punto de conexión de Lakebase es la dirección de la base de datos a la que se conecta la aplicación. Un punto de conexión de alta disponibilidad expone dos cadenas de conexión:

  • Principal ({endpoint-id}.database.{region}.databricks.com) : la conexión principal de lectura y escritura. Úselo en todas las aplicaciones que se conectan a la base de datos. Después de una conmutación por error, se enruta automáticamente al recurso de cómputo que sea ahora principal.
  • Secundario ({endpoint-id}-ro.database.{region}.databricks.com): solo está disponible si se activa Permitir el acceso a instancias de cálculo de solo lectura. Las instancias de cálculo secundarias existen principalmente como instancias de respaldo para conmutación por error; habilitar el acceso de lectura le permite también enrutar las consultas de lectura entre ellas.

Ambas cadenas de conexión están disponibles en el cuadro de diálogo Conectar del punto de conexión.

Detrás de estas cadenas de conexión, un punto de conexión de alta disponibilidad siempre tiene exactamente una instancia de proceso principal y una a tres instancias de proceso secundarias . El servidor principal controla todo el tráfico de lectura y escritura. Las instancias de cómputo secundarias se ejecutan en diferentes zonas de disponibilidad y se promueven para convertirse en la principal en caso de error.

Cada instancia de cómputo secundaria tiene una configuración de acceso que determina si también sirve tráfico de lectura:

Acceso secundario Qué hace
Solo lectura La instancia de cómputo secundaria sirve lecturas a través de la -ro cadena de conexión y se puede promover como principal según sea necesario.
Deshabilitado La instancia de computación secundaria está activa y lista para la conmutación por error, pero no sirve el tráfico de lectura.

Esto se controla con la opción Permitir acceso a instancias de cómputo de solo lectura en el punto de conexión, a la cual se puede acceder en el cajón Editar cómputo. Cuando están habilitadas, todas las instancias de cómputo secundarias realizan las lecturas; cuando están deshabilitadas, están solo en espera para la conmutación por error. En ambos casos, el hardware informático ya está asignado y en ejecución: la promoción no requiere ningún aprovisionamiento nuevo, por lo que la capacidad de failover está reservada independientemente de la demanda en la zona de disponibilidad.

Pestaña de cómputo que muestra primario (lectura/escritura) y tres instancias secundarias (solo lectura)

La pestaña Computes (Proceso) muestra el rol (principal o secundario) de cada instancia de proceso, el estado y el nivel de acceso de un vistazo.

Distribución de AZ

Lakebase distribuye las instancias de proceso principal y secundaria entre zonas de disponibilidad, lo que reduce el riesgo de que un único error de AZ afecte tanto a las instancias de proceso principal como a todas las secundarias.

Escalado automático en alta disponibilidad

Todas las instancias de proceso de una configuración de alta disponibilidad comparten el mismo intervalo de escalado automático. La diferencia máxima entre tu CU mínima y máxima es de 16 CU, el mismo límite que las instancias de cálculo independientes.

Las instancias de cómputo secundarias siempre se escalan al menos al mismo tamaño de CU que la primaria, garantizando que la capacidad de la base de datos se mantenga coherente después de una conmutación por error.

El escalado a cero no está disponible para las instancias de cómputo en una configuración de alta disponibilidad. Puede pausar manualmente todas las instancias de proceso, pero el punto de conexión no estará disponible mientras está en pausa.

Instancias de computación secundarias frente a réplicas de lectura autónomas

Las instancias de proceso secundarias y las réplicas de lectura independientes son características diferentes que pueden coexistir en la misma rama:

Instancias de cómputo secundarias Réplicas de lectura independientes
propósito Conmutación por error + descarga de lectura opcional Solo descarga de lectura
Agregado a través de Configuración de alta disponibilidad Agregar réplica de lectura
Participa en la conmutación por error No
Cadena de conexión -ro en el punto de conexión principal Propio punto de conexión independiente
Dimensionamiento Compartido con principal (nivel de punto de conexión) Tamaño independiente

Cuando necesite alta disponibilidad y capacidad de lectura adicional más allá de lo que proporcionan las instancias de proceso secundarias, puede combinar ambas características en la misma rama. Véase Réplicas de lectura.

Comportamiento de conmutación por error

Conmutación por error automática

Lakebase supervisa continuamente la salud de la computación principal. Si el servidor primario no está disponible, la conmutación por error se desencadena automáticamente.

La conmutación por error conserva todas las transacciones confirmadas.

Fases de conmutación por error: operación normal, principal no disponible después de la detección, conmutación por error en curso con la promoción y, a continuación, servicio restaurado con la misma cadena de conexión y sin pérdida de datos

Después de la conmutación por error, la cadena de conexión principal ({endpoint-id}.database.{region}.databricks.com) se enruta automáticamente a la instancia de computación recién promovida. Las aplicaciones no necesitan cambiar su configuración de conexión, pero las conexiones existentes se finalizan durante la conmutación por error y deben volver a conectarse. Las aplicaciones con lógica de reintento controlan esto automáticamente.

Conmutación por error con acceso de solo lectura habilitado

Cuando se habilita Permitir el acceso a instancias de cómputo de solo lectura y se produce una conmutación por error, la secundaria promocionada se convierte en la nueva principal y deja de atender lecturas. Si dispone de dos o más secundarias legibles, el tráfico de lectura de la cadena de conexión -ro continuará a una capacidad reducida hasta que se aprovisione un reemplazo. Si solo tiene una, las operaciones de lectura se interrumpen completamente hasta que el reemplazo esté listo.

Cadenas de conexión

El cuadro de diálogo Conectar muestra ambas cadenas de conexión con su estado de proceso actual:

Opción Calcular en el cuadro de diálogo para conectar Cadena de conexión Usado para
Primary (name) ● Active {endpoint-id}.database.{region}.databricks.com Todas las escrituras; lecturas que deben dirigirse al nodo primario actual.
Secondary (name) ● Active RO {endpoint-id}-ro.database.{region}.databricks.com Descarga de lectura en instancias de cálculo secundarias (solo disponible cuando está habilitada la opción de permitir el acceso a instancias de cálculo de solo lectura)

La cadena de conexión principal siempre se dirige a la base primaria actual, incluso después de una conmutación por error.

Cada instancia de proceso también tiene su propia cadena de conexión directa, accesible desde la pestaña Proceso a través del menú acciones (⋮) en cada fila. Las conexiones directas están pensadas para solucionar problemas de instancias de proceso individuales, no para el uso de aplicaciones. Las cadenas de conexión directa dependen de cada cálculo y pueden cambiar cuando se agregan, quitan o promocionan segundarias.

Límites de alta disponibilidad

Limit Importancia
Instancias de computación 2, 3 o 4 (1 principal + 1–3 instancias de proceso secundarias)
Intervalo de escalado automático (max − min) ≤ 16 CU entre mínimo y máximo
Escala a cero No disponible para instancias de proceso en una configuración de alta disponibilidad

procedimientos recomendados

Seguir estos procedimientos ayuda a la aplicación a mantenerse resistente y disponible durante los eventos de conmutación por error.

Práctica Detalles
Implementación de la lógica de reintento de conexión Las conexiones activas se interrumpen durante la conmutación por error. Las conexiones al principal que ha fallado pueden quedar colgadas hasta que se agote el tiempo de espera; configure TCP keepalives o un tiempo de espera de conexión en su controlador para detectar fallos rápidamente. Las conexiones a la base de datos secundaria que se promueven se finalizan activamente y devuelven un error inmediatamente. Las aplicaciones con lógica de reintento se vuelven a conectar automáticamente en cuestión de segundos.
Configure el contador secundario para su caso de uso Cada instancia secundaria de cómputo representa hardware previamente asignado y destinado para la conmutación por error. Reducir el recuento secundario significa menos capacidad de conmutación por error y menos zonas de disponibilidad cubiertas. Una instancia de proceso secundaria proporciona cobertura de conmutación por error. Si habilita secundarias legibles, configure dos o más. Con solo una, las lecturas se interrumpen por completo durante una conmutación por error hasta que se aprovisiona un reemplazo.
Evitar sobrecargar instancias de proceso secundarias El servicio puede reiniciar una instancia de proceso secundaria sobrecargada o que se quede atrás. Monitoree la carga de consultas y los recuentos de conexiones, y aumente el tamaño de CU si observa un uso sostenido elevado.

Pasos siguientes