Vue d’ensemble
La fonctionnalité découverte des clusters de ClickHouse simplifie la configuration du cluster en permettant aux nœuds de se découvrir et de s’enregistrer automatiquement, sans nécessiter de définition explicite dans les fichiers de configuration. Cela est particulièrement utile lorsque la définition manuelle de chaque nœud devient fastidieuse.La découverte des clusters nécessite que ClickHouse Keeper ou ZooKeeper soit configuré.
Dans les versions antérieures, il s’agissait d’une fonctionnalité expérimentale qu’il fallait activer via le paramètre
allow_experimental_cluster_discovery dans le fichier de configuration.
Ce paramètre est désormais obsolète et n’a plus aucun effet.Configuration des serveurs distants
Configuration manuelle traditionnelle
Traditionnellement, dans ClickHouse, chaque shard et chaque réplique du cluster devaient être spécifiés manuellement dans la configuration :Utiliser découverte des clusters
Avec découverte des clusters, au lieu de définir explicitement chaque nœud, vous indiquez simplement un chemin dans ZooKeeper. Tous les nœuds qui s’enregistrent sous ce chemin dans ZooKeeper seront automatiquement détectés et ajoutés au cluster.<shard> dans la section <discovery> :
pour node1 et node2 :
node3 et node4 :
Mode observateur
Les nœuds configurés en mode observateur ne s’enregistreront pas en tant que répliques. Ils se contenteront d’observer et de détecter les autres répliques actives du cluster, sans y participer activement. Pour activer le mode observateur, incluez la balise<observer/> dans la section <discovery> :
Découverte des clusters
Il peut parfois être nécessaire d’ajouter et de supprimer non seulement des hôtes au sein des clusters, mais aussi les clusters eux-mêmes. Vous pouvez utiliser le nœud<multicluster_root_path> comme chemin racine pour plusieurs clusters :
/clickhouse/discovery/some_new_cluster, un cluster nommé some_new_cluster sera ajouté.
Vous pouvez utiliser ces deux fonctionnalités simultanément : l’hôte peut s’enregistrer dans le cluster my_cluster et découvrir d’autres clusters :
- Vous ne pouvez pas utiliser à la fois
<path>et<multicluster_root_path>dans le même sous-arbreremote_servers. <multicluster_root_path>ne peut être utilisé qu’avec<observer/>.- Le dernier segment du chemin dans Keeper est utilisé comme nom du cluster, tandis que lors de l’enregistrement, le nom est tiré de la balise XML.
Cas d’utilisation et limites
À mesure que des nœuds sont ajoutés au chemin ZooKeeper spécifié ou en sont supprimés, ils sont automatiquement découverts ou retirés du cluster, sans qu’il soit nécessaire de modifier la configuration ni de redémarrer le serveur. Cependant, ces changements n’affectent que la configuration du cluster, et non les données ni les bases de données et tables existantes. Considérez l’exemple suivant avec un cluster de 3 nœuds :remote_servers du fichier de configuration :
event_table n’existe encore que sur les trois premiers nœuds :