Saltar al contenido principal

Descripción general

La funcionalidad Detección de clústeres de ClickHouse simplifica la configuración del clúster al permitir que los nodos se descubran y se registren automáticamente, sin necesidad de definirlos explícitamente en los archivos de configuración. Esto resulta especialmente útil cuando la definición manual de cada nodo se vuelve engorrosa.
Detección de clústeres es una funcionalidad experimental y puede modificarse o eliminarse en futuras versiones. Para habilitarla, incluya la opción allow_experimental_cluster_discovery en su archivo de configuración:

Configuración de los servidores remotos

Configuración manual tradicional

Tradicionalmente, en ClickHouse, había que especificar manualmente en la configuración cada segmento y cada réplica del clúster:

Uso de Detección de clústeres

Con Detección de clústeres, en lugar de definir explícitamente cada nodo, basta con especificar un path en ZooKeeper. Todos los nodos que se registren bajo este path en ZooKeeper se descubrirán automáticamente y se agregarán al clúster.
Si quieres especificar un número de segmento para un nodo concreto, puedes incluir la etiqueta <shard> dentro de la sección <discovery>: para node1 y node2:
para node3 y node4:

Modo observador

Los nodos configurados en modo observador no se registrarán como réplicas. Solo observarán y detectarán otras réplicas activas en el clúster sin participar activamente. Para habilitar el modo observador, incluye la etiqueta <observer/> en la sección <discovery>:

Detección de clústeres

A veces puede ser necesario añadir y eliminar no solo hosts de los clústeres, sino también los propios clústeres. Puede usar el nodo <multicluster_root_path> con la ruta raíz de varios clústeres:
En este caso, cuando algún otro host se registra con la ruta /clickhouse/discovery/some_new_cluster, se añadirá un clúster llamado some_new_cluster. Puede usar ambas funciones simultáneamente; el host puede registrarse en el clúster my_cluster y descubrir cualquier otro clúster:
Limitaciones:
  • No se pueden usar <path> y <multicluster_root_path> a la vez en el mismo subárbol de remote_servers.
  • <multicluster_root_path> solo puede usarse con <observer/>.
  • La última parte de la ruta de Keeper se usa como nombre del clúster, mientras que durante el registro el nombre se toma de la etiqueta XML.

Casos de uso y limitaciones

A medida que se añaden o eliminan nodos de la ruta de ZooKeeper especificada, estos se detectan o se eliminan automáticamente del clúster sin necesidad de cambios en la configuración ni de reiniciar el servidor. Sin embargo, los cambios afectan solo a la configuración del clúster, no a los datos ni a las bases de datos y tablas existentes. Considere el siguiente ejemplo con un clúster de 3 nodos:
A continuación, añadimos un nuevo nodo al clúster e iniciamos ese nuevo nodo con la misma entrada en la sección remote_servers de un archivo de configuración:
El cuarto nodo forma parte del clúster, pero la tabla event_table todavía existe solo en los tres primeros nodos:
Si necesita que las tablas estén replicadas en todos los nodos, puede usar el motor de base de datos Replicated como alternativa al descubrimiento del clúster.
Última modificación el 12 de junio de 2026