Prerrequisitos
- Tu servicio necesita 2 o más réplicas. En un servicio con una sola réplica, no hay ninguna a la que anclarlo.
- Disponible en Enterprise de forma predeterminada cuando la función sea GA.
- Compatible con los servicios estándar de ClickHouse Cloud. BYOC aún no es compatible.
Configuración del enrutamiento con reconocimiento de réplicas
session_id hasta que recibas confirmación; X-ClickHouse-Replica-Tag no proporcionará enrutamiento con afinidad hasta que el despliegue llegue a tu servicio. No es necesario reiniciar.
Enrutamiento basado en HTTP
- X-ClickHouse-Replica-Tag (preferida)
- session_id (legacy)
Para asignar una carga de trabajo a una réplica concreta, envíe un encabezado Para clickhouse-go (v2), configure
X-ClickHouse-Replica-Tag a través de la interfaz HTTPS. El proxy aplica hash consistente al valor del encabezado, por lo que las solicitudes que lo comparten se dirigen a la misma réplica mientras el número de réplicas no cambie. Un valor distinto se procesa como hash de forma independiente y puede asignarse a la misma réplica o a otra, pero no puede elegir a qué réplica se asigna un valor.Use el hostname de su servicio existente. No se requieren hostnames sticky especiales ni cambios en DNS. El valor del encabezado puede ser cualquier cadena que elija, como un nombre de aplicación, un ID de usuario o una etiqueta de carga de trabajo. Las solicitudes sin el encabezado mantienen el balanceo de carga normal.Establezca el encabezado X-ClickHouse-Replica-Tag en cada solicitud:Protocol: clickhouse.HTTP y pase el encabezado mediante la opción de conexión HttpHeaders.X-ClickHouse-Replica-Tag proporciona afinidad con una réplica sin crear una sesión HTTP de ClickHouse. Las solicitudes concurrentes pueden reutilizar la misma etiqueta sin encontrarse con SESSION_IS_LOCKED.Consistencia de lectura después de la escritura
En un servicio con varias réplicas, es posible que una escritura en una réplica no sea visible en las demás hasta que la replicación se ponga al día. Envíe la escritura con un encabezadoX-ClickHouse-Replica-Tag y reutilice el mismo valor de encabezado en las lecturas posteriores. El proxy enruta ambas solicitudes a la misma réplica, por lo que puede leer su propia escritura incluso si las demás réplicas aún están retrasadas. Este patrón es útil para cargas de trabajo que escriben y luego leen inmediatamente los mismos datos, como aplicaciones interactivas o jobs de ETL que validan las inserciones antes de continuar.Para obtener garantías más amplias en todas las réplicas, también puede establecer select_sequential_consistency en 1 en ClickHouse Cloud.Compruebe qué réplica se ha utilizado
Ejecute de nuevo el ejemploSELECT hostName() con el mismo valor de X-ClickHouse-Replica-Tag. Debería obtener el mismo hostname mientras el número de réplicas no cambie. Un valor de encabezado diferente puede asignarse a otra réplica.Enrutamiento basado en subdominios heredado
Cómo funciona el enrutamiento heredado basado en subdominios
Cómo funciona el enrutamiento heredado basado en subdominios
Anteriormente, habilitar el enrutamiento con reconocimiento de réplicas permitía usar un subdominio comodín sobre el nombre del host del servicio. En un servicio con el nombre del host
abcxyz123.us-west-2.aws.clickhouse.cloud, cualquier nombre del host que coincidiera con *.sticky.abcxyz123.us-west-2.aws.clickhouse.cloud (por ejemplo, aaa.sticky.abcxyz123.us-west-2.aws.clickhouse.cloud) era procesado con hash por Envoy y asignado de forma consistente a una réplica. El nombre del host original seguía usando el balanceo de carga LEAST_CONNECTION, el algoritmo de enrutamiento predeterminado.Limitaciones del enrutamiento con reconocimiento de réplicas
La afinidad cambia cuando cambia el número de réplicas
El enrutamiento con reconocimiento de réplicas no es aislamiento de cargas de trabajo
Private Link y el método de subdominio heredado
*.sticky.*, y una configuración incorrecta puede distribuir la carga de forma desigual entre las réplicas.
El enrutamiento con reconocimiento de réplicas requiere el protocolo HTTP
Solución de problemas
- Confirme que utiliza el método de enrutamiento disponible para su servicio: el encabezado
X-ClickHouse-Replica-Tago el parámetro de consulta de URLsession_idheredado. - Confirme que cada solicitud utiliza exactamente el mismo valor de enrutamiento.
- Espere unos instantes tras la activación. Los cambios pueden tardar menos de un minuto en aplicarse.
- Compruebe si el número de réplicas ha cambiado recientemente; es normal que se reasignen después del escalado. Use
SELECT hostName()para descubrir la nueva correspondencia.