クラスター発見
概要
ClickHouse のクラスター発見機能は、ノードが設定ファイルに明示的に定義されることなく、自動的に発見し、登録することを可能にすることで、クラスター構成を簡素化します。これは、各ノードの手動定義が煩雑になる場合に特に有益です。
クラスター発見は実験的機能であり、今後のバージョンで変更または削除される可能性があります。
これを有効にするには、構成ファイルに allow_experimental_cluster_discovery
設定を含めてください:
リモートサーバー構成
従来の手動構成
従来、ClickHouse では、クラスター内の各シャードとレプリカを手動で指定する必要がありました:
クラスター発見の使用
クラスター発見を使用すると、各ノードを明示的に定義するのではなく、ZooKeeper 内のパスを指定するだけで済みます。このパスの下で登録されたすべてのノードは自動的に発見され、クラスターに追加されます。
特定のノードのシャード番号を指定したい場合は、<discovery>
セクション内に <shard>
タグを含めることができます:
node1
と node2
の場合:
node3
と node4
の場合:
オブザーバーモード
オブザーバーモードで構成されたノードは、レプリカとして自らを登録しません。
彼らは、他のアクティブなレプリカを観察し、発見するだけで、積極的には参加しません。
オブザーバーモードを有効にするには、<discovery>
セクション内に <observer/>
タグを含めてください:
ユースケースと制限
指定された ZooKeeper パスにノードが追加または削除されると、構成変更やサーバーの再起動なしに自動的にクラスターに発見または削除されます。
ただし、変更はクラスター構成にのみ影響し、データや既存のデータベースおよびテーブルには影響しません。
以下の例を考えてみましょう。3つのノードからなるクラスターがあります:
次に、新しいノードをクラスターに追加し、構成ファイルの remote_servers
セクションに同じエントリで新しいノードを起動します:
4番目のノードはクラスターに参加していますが、テーブル event_table
は最初の3つのノードにしか存在しません:
すべてのノードでテーブルをレプリケートする必要がある場合は、クラスター発見の代わりに Replicated データベースエンジンを使用することができます。