跳到主要内容
跳到主要内容

可组合协议

概述

可组合协议允许更灵活地配置对 ClickHouse 服务器的 TCP 访问。此配置可以与常规配置共存或替代。

配置可组合协议

可组合协议可以在 XML 配置文件中配置。协议部分用 protocols 标签在 XML 配置文件中表示:

配置协议层

您可以使用基本模块定义协议层。例如,要定义 HTTP 层,您可以向 protocols 部分添加一个新的基本模块:

模块可以根据以下内容进行配置:

  • plain_http - 可以被另一个层引用的名称
  • type - 表示将实例化以处理数据的协议处理程序。 它有以下预定义的协议处理程序集:
    • tcp - 本地 ClickHouse 协议处理程序
    • http - HTTP ClickHouse 协议处理程序
    • tls - TLS 加密层
    • proxy1 - PROXYv1 层
    • mysql - MySQL 兼容协议处理程序
    • postgres - PostgreSQL 兼容协议处理程序
    • prometheus - Prometheus 协议处理程序
    • interserver - ClickHouse 服务器间处理程序
备注

gRPC 协议处理程序未为 Composable protocols 实现

配置端点

端点(监听端口)用 <port> 和可选的 <host> 标签表示。 例如,要在之前添加的 HTTP 层上配置一个端点,我们可以按如下方式修改我们的配置:

如果省略 <host> 标签,则使用根配置中的 <listen_host>

配置层序列

层序列由 <impl> 标签定义,并引用另一个模块。 例如,要在我们的 plain_http 模块上配置一个 TLS 层,我们可以进一步按如下方式修改我们的配置:

将端点附加到层

端点可以附加到任何层。例如,我们可以为 HTTP(端口 8123)和 HTTPS(端口 8443)定义端点:

定义附加端点

可以通过引用任何模块并省略 <type> 标签定义附加端点。例如,我们可以为 plain_http 模块定义 another_http 端点,如下所示:

指定附加层参数

某些模块可以包含附加层参数。例如,TLS 层允许指定私钥(privateKeyFile)和证书文件(certificateFile),具体如下: