Skip to content

Commit

Permalink
This is an automated cherry-pick of pingcap#19415
Browse files Browse the repository at this point in the history
Signed-off-by: ti-chi-bot <[email protected]>
  • Loading branch information
djshow832 authored and ti-chi-bot committed Jan 7, 2025
1 parent 0f92a6e commit 558e087
Show file tree
Hide file tree
Showing 4 changed files with 130 additions and 7 deletions.
73 changes: 71 additions & 2 deletions tiproxy/tiproxy-configuration.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,9 @@ summary: 了解与 TiProxy 部署和使用相关的配置参数。

# TiProxy 配置文件

本文档介绍了与 TiProxy 部署和使用相关的配置参数。以下是一个配置示例:
本文档介绍了与 TiProxy 部署和使用相关的配置参数。关于 TiUP 的拓扑文件配置参数,请参阅 [tiproxy-servers 配置参数](/tiup/tiup-cluster-topology-reference.md#tiproxy_servers)

以下是一个配置示例:

```toml
[proxy]
Expand Down Expand Up @@ -42,8 +44,17 @@ SQL 端口的配置。

+ 默认值:`0.0.0.0:6000`
+ 支持热加载:否
+ SQL 网关地址。格式为 `<ip>:<port>`
+ SQL 服务的监听地址。格式为 `<ip>:<port>`。使用 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`
Expand Down Expand Up @@ -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`
Expand Down
34 changes: 34 additions & 0 deletions tiproxy/tiproxy-deployment-topology.md
Original file line number Diff line number Diff line change
Expand Up @@ -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 代理,可以平衡连接并迁移会话。

## 拓扑信息
Expand All @@ -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
Expand All @@ -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
Expand Down
17 changes: 12 additions & 5 deletions tiproxy/tiproxy-overview.md
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand All @@ -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
```
Expand All @@ -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)。

配置示例:

Expand All @@ -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. 启动集群。
Expand Down
13 changes: 13 additions & 0 deletions tiup/tiup-cluster-topology-reference.md
Original file line number Diff line number Diff line change
Expand Up @@ -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"`。
Expand All @@ -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` 是一个数组,每个数组元素包含以下字段:
Expand Down Expand Up @@ -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`

Expand Down

0 comments on commit 558e087

Please sign in to comment.