diff --git a/tiproxy/tiproxy-configuration.md b/tiproxy/tiproxy-configuration.md index c5238174dd44..1d4de40bc0ed 100644 --- a/tiproxy/tiproxy-configuration.md +++ b/tiproxy/tiproxy-configuration.md @@ -5,7 +5,9 @@ summary: 了解与 TiProxy 部署和使用相关的配置参数。 # TiProxy 配置文件 -本文档介绍了与 TiProxy 部署和使用相关的配置参数。以下是一个配置示例: +本文档介绍了与 TiProxy 部署和使用相关的配置参数。关于 TiUP 的拓扑文件配置参数,请参阅 [tiproxy-servers 配置参数](/tiup/tiup-cluster-topology-reference.md#tiproxy_servers)。 + +以下是一个配置示例: ```toml [proxy] @@ -42,8 +44,17 @@ SQL 端口的配置。 + 默认值:`0.0.0.0:6000` + 支持热加载:否 -+ SQL 网关地址。格式为 `:`。 ++ SQL 服务的监听地址。格式为 `:`。使用 TiUP 或 TiDB Operator 部署 TiProxy 时,此配置项会自动设置。 + +<<<<<<< HEAD +======= +#### `advertise-addr` + ++ 默认值:`""` ++ 支持热加载:否 ++ 指定其他组件连接 TiProxy 时使用的地址,该地址只包含主机名,不包含端口。该地址可能与 [`addr`](#addr) 中的主机名不同。例如,TiProxy 的 TLS 证书中的 `Subject Alternative Name` 只包含域名时,其他组件通过 IP 连接 TiProxy 会失败。使用 TiUP 或 TiDB Operator 部署 TiProxy 时,此配置项会自动设置。如果未设置该配置项,将使用该 TiProxy 实例的外部 IP 地址。 +>>>>>>> 11499c9b2a (tiproxy: improve deployment instructions for deploying TiProxy (#19415)) #### `graceful-wait-before-shutdown` + 默认值:`0` @@ -102,6 +113,64 @@ HTTP 网关的配置。 + 可选值:`""`, `"v2"` + 在端口启用 [PROXY 协议](https://www.haproxy.org/download/1.8/doc/proxy-protocol.txt)。`"v2"` 代表使用 PROXY 协议 v2 版本,`""` 代表不使用 PROXY 协议。 +<<<<<<< HEAD +======= +### balance + +TiProxy 负载均衡策略的配置。 + +#### `label-name` + ++ 默认值:`""` ++ 支持热加载:是 ++ 指定用于[基于标签的负载均衡](/tiproxy/tiproxy-load-balance.md#基于标签的负载均衡)的标签名。TiProxy 根据该标签名匹配 TiDB server 的标签值,并优先将请求路由到与自身具有相同标签值的 TiDB server。 ++ `label-name` 的默认值为空字符串,表示不使用基于标签的负载均衡。要启用该负载均衡策略,需要将此配置项设置为非空字符串,并配置 TiProxy 的 [`labels`](#labels) 和 TiDB 的 [`labels`](/tidb-configuration-file.md#labels) 配置项。有关详细信息,请参阅[基于标签的负载均衡](/tiproxy/tiproxy-load-balance.md#基于标签的负载均衡)。 + +#### `policy` + ++ 默认值:`resource` ++ 支持热加载:是 ++ 可选值:`resource`、`location`、`connection` ++ 指定负载均衡策略。各个可选值的含义请参阅 [TiProxy 负载均衡策略](/tiproxy/tiproxy-load-balance.md#负载均衡策略配置)。 + +### ha + +TiProxy 的高可用配置。 + +#### `virtual-ip` + ++ 默认值:`""` ++ 支持热加载:否 ++ 指定虚拟 IP 地址,使用 CIDR 格式表示,例如 `"10.0.1.10/24"`。当集群中部署了多台 TiProxy 时,只有一台 TiProxy 会绑定虚拟 IP。当该 TiProxy 下线时,另外一台 TiProxy 会自动绑定该 IP,确保客户端始终能通过虚拟 IP 连接到可用的 TiProxy。 + +配置示例: + +```yaml +server_configs: + tiproxy: + ha.virtual-ip: "10.0.1.10/24" + ha.interface: "eth0" +``` + +> **注意:** +> +> - 虚拟 IP 仅支持 Linux 操作系统。 +> - 运行 TiProxy 的 Linux 用户必须具有绑定 IP 地址的权限。 +> - 虚拟 IP 和所有 TiProxy 实例的 IP 必须处于同一个 CIDR 范围内。 + +#### `interface` + ++ 默认值:`""` ++ 支持热加载:否 ++ 指定绑定虚拟 IP 的网络接口,例如 `"eth0"`。只有同时设置 [`ha.virtual-ip`](#virtual-ip) 和 `ha.interface` 时,该 TiProxy 实例才能绑定虚拟 IP。 + +### `labels` + ++ 默认值:`{}` ++ 支持热加载:是 ++ 指定服务器标签,例如 `{ zone = "us-west-1", dc = "dc1" }`。 + +>>>>>>> 11499c9b2a (tiproxy: improve deployment instructions for deploying TiProxy (#19415)) ### log #### `level` diff --git a/tiproxy/tiproxy-deployment-topology.md b/tiproxy/tiproxy-deployment-topology.md index 2e74dff3f009..5cfa87d1be25 100644 --- a/tiproxy/tiproxy-deployment-topology.md +++ b/tiproxy/tiproxy-deployment-topology.md @@ -7,6 +7,12 @@ summary: 了解在部署最小拓扑集群的基础上,部署 TiProxy 的拓 本文介绍在部署最小拓扑集群的基础上,部署 [TiProxy](/tiproxy/tiproxy-overview.md) 的拓扑结构。 +其他部署方式,请参考以下文档: + +- 使用 TiDB Operator 部署 TiProxy,请参见 [TiDB Operator](https://docs.pingcap.com/zh/tidb-in-kubernetes/stable/deploy-tiproxy) 文档。 +- 使用 TiUP 本地快速部署 TiProxy,请参见[部署 TiProxy](/tiup/tiup-playground.md#部署-tiproxy)。 +- 使用 TiUP 部署 TiProxy,请参见 [TiProxy 安装和使用](/tiproxy/tiproxy-overview.md#安装和使用)。 + TiProxy 是 TiDB 的 L7 代理,可以平衡连接并迁移会话。 ## 拓扑信息 @@ -32,6 +38,18 @@ global: ssh_port: 22 deploy_dir: "/tidb-deploy" data_dir: "/tidb-data" +<<<<<<< HEAD +======= +component_versions: + tiproxy: "v1.2.0" +server_configs: + tidb: + graceful-wait-before-shutdown: 15 + tiproxy: + ha.virtual-ip: "10.0.1.10/24" + ha.interface: "eth0" + graceful-wait-before-shutdown: 15 +>>>>>>> 11499c9b2a (tiproxy: improve deployment instructions for deploying TiProxy (#19415)) pd_servers: - host: 10.0.1.1 @@ -50,6 +68,22 @@ tikv_servers: tiproxy_servers: - host: 10.0.1.11 +<<<<<<< HEAD +======= + deploy_dir: "/tiproxy-deploy" + data_dir: "/tiproxy-data" + port: 6000 + status_port: 3080 + config: + labels: { zone: "east" } + - host: 10.0.1.12 + deploy_dir: "/tiproxy-deploy" + data_dir: "/tiproxy-data" + port: 6000 + status_port: 3080 + config: + labels: { zone: "west" } +>>>>>>> 11499c9b2a (tiproxy: improve deployment instructions for deploying TiProxy (#19415)) monitoring_servers: - host: 10.0.1.13 diff --git a/tiproxy/tiproxy-overview.md b/tiproxy/tiproxy-overview.md index f3d9939081f5..35f2e84d48d3 100644 --- a/tiproxy/tiproxy-overview.md +++ b/tiproxy/tiproxy-overview.md @@ -55,7 +55,12 @@ TiProxy 不适用于以下场景: ## 安装和使用 -本节介绍使用 TiUP 部署和变更 TiProxy 的步骤。使用 TiDB Operator 部署的方式请参阅 [TiDB Operator](https://docs.pingcap.com/zh/tidb-in-kubernetes/stable/deploy-tiproxy) 文档。 +本节介绍使用 TiUP 部署和变更 TiProxy 的步骤。 + +其他部署方式,请参考以下文档: + +- 使用 TiDB Operator 部署 TiProxy,请参见 [TiDB Operator](https://docs.pingcap.com/zh/tidb-in-kubernetes/stable/deploy-tiproxy) 文档。 +- 使用 TiUP 本地快速部署 TiProxy,请参见[部署 TiProxy](/tiup/tiup-playground.md#部署-tiproxy)。 ### 部署 TiProxy @@ -77,9 +82,6 @@ TiProxy 不适用于以下场景: tidb: security.session-token-signing-cert: "/var/sess/cert.pem" security.session-token-signing-key: "/var/sess/key.pem" - security.ssl-ca: "/var/ssl/ca.pem" - security.ssl-cert: "/var/ssl/cert.pem" - security.ssl-key: "/var/ssl/key.pem" graceful-wait-before-shutdown: 15 ``` @@ -94,7 +96,7 @@ TiProxy 不适用于以下场景: 建议在拓扑配置里指定 TiProxy 的版本号,这样通过 [`tiup cluster upgrade`](/tiup/tiup-component-cluster-upgrade.md) 升级 TiDB 集群时不会升级 TiProxy,否则升级 TiProxy 会导致客户端连接断开。 - 如需配置 TiProxy 配置项,请参阅 [TiProxy 配置](/tiproxy/tiproxy-configuration.md)。 + 如需配置 TiProxy 配置项,请参阅 [TiProxy 配置](/tiproxy/tiproxy-configuration.md)。更多 TiProxy 部署拓扑配置参数,请参阅 [tiproxy-servers 配置参数](/tiup/tiup-cluster-topology-reference.md#tiproxy_servers)。 配置示例: @@ -103,9 +105,14 @@ TiProxy 不适用于以下场景: tiproxy: "v1.0.0" server_configs: tiproxy: +<<<<<<< HEAD security.server-tls.ca: "/var/ssl/ca.pem" security.server-tls.cert: "/var/ssl/cert.pem" security.server-tls.key: "/var/ssl/key.pem" +======= + ha.virtual-ip: "10.0.1.10/24" + ha.interface: "eth0" +>>>>>>> 11499c9b2a (tiproxy: improve deployment instructions for deploying TiProxy (#19415)) ``` 4. 启动集群。 diff --git a/tiup/tiup-cluster-topology-reference.md b/tiup/tiup-cluster-topology-reference.md index 46ad6550772b..72fca3330c63 100644 --- a/tiup/tiup-cluster-topology-reference.md +++ b/tiup/tiup-cluster-topology-reference.md @@ -341,6 +341,7 @@ tiflash_servers: - `host`:指定部署到哪台机器,字段值填 IP 地址,不可省略。 - `ssh_port`:指定连接目标机器进行操作的时候使用的 SSH 端口,若不指定,则使用 `global` 区块中的 `ssh_port`。 - `port`:TiProxy SQL 服务的监听端口,默认值:`6000`。 +- `status_port`:TiProxy 状态服务的监听端口,用于外部通过 HTTP 请求查看 TiProxy 服务的状态,默认值:`3080`。 - `deploy_dir`:指定部署目录,若不指定,或指定为相对目录,则按照 `global` 中配置的 `deploy_dir` 生成。 - `data_dir`:指定数据目录,若不指定,或指定为相对目录,则按照 `global` 中配置的 `data_dir` 生成。 - `numa_node`:为该实例分配 NUMA 策略,如果指定了该参数,需要确保目标机装了 [numactl](https://linux.die.net/man/8/numactl),在指定该参数的情况下会通过 [numactl](https://linux.die.net/man/8/numactl) 分配 cpubind 和 membind 策略。该字段参数为 string 类型,字段值填 NUMA 节点的 ID,例如 `"0,1"`。 @@ -362,9 +363,18 @@ tiflash_servers: ```yaml tiproxy_servers: - host: 10.0.1.21 + port: 6000 + status_port: 3080 + config: + labels: { zone: "zone1" } - host: 10.0.1.22 + port: 6000 + status_port: 3080 + config: + labels: { zone: "zone2" } ``` +<<<<<<< HEAD ### `pump_servers` `pump_servers` 约定了将 TiDB Binlog 组件的 Pump 服务部署到哪些机器上,同时可以指定每台机器上的服务配置。`pump_servers` 是一个数组,每个数组元素包含以下字段: @@ -448,6 +458,9 @@ drainer_servers: - db-name: test tbl-name: audit ``` +======= +关于更多配置示例,请参见 [TiProxy 部署拓扑](/tiproxy/tiproxy-deployment-topology.md)。 +>>>>>>> 11499c9b2a (tiproxy: improve deployment instructions for deploying TiProxy (#19415)) ### `kvcdc_servers`