メインコンテンツまでスキップ
メインコンテンツまでスキップ

コンポーザブルプロトコル

概要

コンポーザブルプロトコルは、ClickHouseサーバーへのTCPアクセスの柔軟な構成を可能にします。この構成は、従来の構成と共存するか、または置き換えられることができます。

コンポーザブルプロトコルの構成

コンポーザブルプロトコルは、XML構成ファイルで構成できます。プロトコルセクションは、XML設定ファイル内の protocols タグで示されます:

プロトコルレイヤーの構成

基本モジュールを使用してプロトコルレイヤーを定義できます。たとえば、HTTPレイヤーを定義するには、protocols セクションに新しい基本モジュールを追加できます:

モジュールは以下に基づいて構成できます:

  • plain_http - 他のレイヤーで参照できる名前
  • type - データを処理するためにインスタンス化されるプロトコルハンドラーを示します。 予め定義されたプロトコルハンドラーのセットは次の通りです:
    • tcp - ネイティブClickHouseプロトコルハンドラー
    • http - HTTP ClickHouseプロトコルハンドラー
    • tls - TLS暗号化レイヤー
    • proxy1 - PROXYv1レイヤー
    • mysql - MySQL互換プロトコルハンドラー
    • postgres - PostgreSQL互換プロトコルハンドラー
    • prometheus - Prometheusプロトコルハンドラー
    • interserver - ClickHouseインターサーバーハンドラー
注記

gRPCプロトコルハンドラーはコンポーザブルプロトコルには実装されていません

エンドポイントの構成

エンドポイント(リスニングポート)は、<port> およびオプションの <host> タグで示されます。 たとえば、前に追加したHTTPレイヤーにエンドポイントを構成するには、次のように設定を変更できます:

<host> タグが省略された場合は、ルート構成の <listen_host> が使用されます。

レイヤーの順序の構成

レイヤーの順序は、<impl> タグを使用して定義され、別のモジュールを参照します。たとえば、plain_http モジュールの上にTLSレイヤーを構成するには、次のように設定をさらに変更できます:

レイヤーにエンドポイントを添付する

エンドポイントは任意のレイヤーに添付できます。たとえば、HTTP(ポート8123)およびHTTPS(ポート8443)のエンドポイントを定義できます:

追加のエンドポイントの定義

追加のエンドポイントは、任意のモジュールを参照し <type> タグを省略することで定義できます。たとえば、plain_http モジュールの another_http エンドポイントを次のように定義できます:

追加のレイヤーパラメータの指定

一部のモジュールは、追加のレイヤーパラメータを含むことができます。たとえば、TLSレイヤーは次のようにプライベートキー(privateKeyFile)および証明書ファイル(certificateFile)を指定できます: