首批通过分布式安全可靠测评,为关键业务系统打造
集群扩容
更新时间:2026-04-10 11:58:35
本文介绍如何向已初始化的集群添加一个指定的节点。
调用说明
接口约束
obshell Server 会对该 API 进行安全校验,详细介绍可参见 API 混合加密。
请求路径
POST /api/v1/ob/scale_out
请求参数
| 参数 | 类型 | 必选 | 示例值 | 描述 |
|---|---|---|---|---|
| agentInfo | AgentInfo | 是 | { "ip": "10.10.10.4", "port": 2886 } |
设置希望被扩容进入集群的节点信息,包含如下信息:
|
| obConfigs | map[string]string | 是 | { "mysql_port": "2881", "rpc_port": "2882", "memory_limit": "16G", "system_memory": "8G" } |
希望被扩容进入集群的 OBServer 节点的配置信息。 |
| zone | string | 是 | "zone1" | 节点所属 Zone。 |
返回结果
| 参数 | 类型 | 说明 |
|---|---|---|
| successful | bool | 请求是否成功。 |
| timestamp | time.Time | 服务端完成请求的时间戳。 |
| duration | int | 服务端处理请求的时间(毫秒)。 |
| status | int | 符合 HTTP Status 规范的编码。 |
| traceId | string | 请求的 Trace ID。 |
| data | DagDetailDTO | 详情参见下文 DagDetailDTO 信息的数据结构。 |
| error | ApiError | 请求产生的 Error,包含如下信息:
|
DagDetailDTO 信息的数据结构如下:
| 参数 | 类型 | 说明 |
|---|---|---|
| id | string | DAG 通用 ID。 |
| dag_id | int | DAG id,是记录在 OceanBase 数据库中的主键。 |
| name | string | DAG 名称。 |
| stage | int | DAG 的当前执行阶段。 |
| max_stage | int | DAG 执行过程中的总阶段数。 |
| state | string | DAG 执行状态。 |
| operator | string | DAG 执行操作类型。 |
| start_time | time.Time | DAG 执行起始时间。 |
| end_time | time.Time | DAG 执行结束时间。 |
| additional_data | map[string]any | DAG 其他数据。 |
| nodes | []NodeDetailDTO | DAG 内的所有 Node 信息,详见 获取 Node 的详细信息。 |
示例
请求示例
POST 10.10.10.1:2886/api/v1/ob/scale_out
{
"agentInfo": {
"ip": "10.10.10.4",
"port": 2886
},
"obConfigs": {
"mysqlPort": "2881",
"rpcPort": "2882",
"memory_limit": "16G",
"system_memory": "8G",
"log_disk_size": "24G",
"datafile_size": "24G"
},
"zone": "zone2"
}
示例中展示了向 10.10.10.1:2886 节点发起将 10.10.10.4:2886 节点扩容进入集群的请求。
返回示例
{
"successful": true,
"timestamp": "2024-01-09T20:40:00.86290666+08:00",
"duration": 51,
"status": 200,
"traceId": "29b9c2717c65d7bc",
"data": {
"id": "11",
"dag_id": 1,
"name": "Cluster scale out",
"stage": 1,
"max_stage": 9,
"state": "READY",
"operator": "RUN",
"start_time": "0001-01-01T00:00:00Z",
"end_time": "0001-01-01T00:00:00Z",
"additional_data": null,
"nodes": null
}
}
相关文档
除通过命令行调用 API 接口外,还可以通过 SDK 方法调用 API。