ClickHouse/docs/ja/operations/settings/composable-protocols.md

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

156 lines
4.0 KiB
Markdown
Raw Normal View History

2024-11-18 02:58:58 +00:00
---
slug: /ja/operations/settings/composable-protocols
sidebar_position: 64
sidebar_label: Composable Protocols
---
# Composable Protocols
Composable Protocolsは、ClickHouseサーバーへのTCPアクセスの設定をより柔軟に構成できます。この設定は、従来の設定と共存するか、置き換えることができます。
## Composable Protocolsセクションは設定xml内で`protocols`として表されます
**例:**
``` xml
<protocols>
</protocols>
```
## 基本モジュールによってプロトコル層を定義します
**例:**
``` xml
<protocols>
<!-- plain_httpモジュール -->
<plain_http>
<type>http</type>
</plain_http>
</protocols>
```
ここで:
- `plain_http` - 他の層から参照されることができる名前
- `type` - データを処理するためにインスタンス化されるプロトコルハンドラを示し、プロトコルハンドラのセットは事前に定義されています:
* `tcp` - ネイティブclickhouseプロトコルハンドラ
* `http` - http clickhouseプロトコルハンドラ
* `tls` - TLS暗号化層
* `proxy1` - PROXYv1層
* `mysql` - MySQL互換プロトコルハンドラ
* `postgres` - PostgreSQL互換プロトコルハンドラ
* `prometheus` - Prometheusプロトコルハンドラ
* `interserver` - clickhouseインターサーバーハンドラ
:::note
`Composable Protocols`には`gRPC`プロトコルハンドラは実装されていません。
:::
## エンドポイント(リスニングポート)は`<port>`タグおよび(オプションで)`<host>`タグで表されます
**例:**
``` xml
<protocols>
<plain_http>
<type>http</type>
<!-- エンドポイント -->
<host>127.0.0.1</host>
<port>8123</port>
</plain_http>
</protocols>
```
`<host>`が省略された場合、ルート設定の`<listen_host>`が使用されます。
## 階層のシーケンスは、他のモジュールを参照する`<impl>`タグによって定義されます
**例:** HTTPSプロトコルの定義
``` xml
<protocols>
<!-- httpモジュール -->
<plain_http>
<type>http</type>
</plain_http>
<!-- plain_httpモジュール上のTLSレイヤーとして設定されたhttpsモジュール -->
<https>
<type>tls</type>
<impl>plain_http</impl>
<host>127.0.0.1</host>
<port>8443</port>
</https>
</protocols>
```
## エンドポイントは任意の階層にアタッチできます
**例:** HTTPポート8123およびHTTPSポート8443エンドポイントの定義
``` xml
<protocols>
<plain_http>
<type>http</type>
<host>127.0.0.1</host>
<port>8123</port>
</plain_http>
<https>
<type>tls</type>
<impl>plain_http</impl>
<host>127.0.0.1</host>
<port>8443</port>
</https>
</protocols>
```
## 追加のエンドポイントは任意のモジュールを参照し、`<type>`タグを省略することで定義できます
**例:** `plain_http`モジュールのために定義された`another_http`エンドポイント
``` xml
<protocols>
<plain_http>
<type>http</type>
<host>127.0.0.1</host>
<port>8123</port>
</plain_http>
<https>
<type>tls</type>
<impl>plain_http</impl>
<host>127.0.0.1</host>
<port>8443</port>
</https>
<another_http>
<impl>plain_http</impl>
<host>127.0.0.1</host>
<port>8223</port>
</another_http>
</protocols>
```
## 一部のモジュールはその層に特有のパラメーターを含めることができます
**例:** TLS層のためにプライベートキー`privateKeyFile`)および証明書ファイル(`certificateFile`)を指定できます
``` xml
<protocols>
<plain_http>
<type>http</type>
<host>127.0.0.1</host>
<port>8123</port>
</plain_http>
<https>
<type>tls</type>
<impl>plain_http</impl>
<host>127.0.0.1</host>
<port>8443</port>
<privateKeyFile>another_server.key</privateKeyFile>
<certificateFile>another_server.crt</certificateFile>
</https>
</protocols>
```