跳到主要内容
版本:Cloud 开发指南

Replica 扩缩容

Zilliz Cloud 支持针对集群创建 Replica。Replica 是对集群中数据和资源的拷贝。使用 Replica 可以提升查询吞吐量和系统稳定性。

对于数据量较小但 QPS 出现瓶颈的用户而言,增加 Replica 数量能分布查询负载,从而整体提升查询吞吐量。为了提升性能,您可以在指标页面查看 Query CU 计算资源,判断是否需要扩容。

请注意,增加 Replica 数量并不会提升集群容量。影响集群数据容量的唯一因素是 CU 规格。如需提升集群数据容量,请参考集群扩缩容

本文介绍如何为 Zilliz Cloud 集群设置 Replica。

📘说明

此功能仅限企业版项目中的 Dedicated 集群使用。

使用限制

在集群创建完成后,满足以下条件时,您可以设置 Replica:

  • 集群 Query CU 数量大于等于 8。

  • Query CU 数量 x Replica 数量不得超过 256。

🚧警告

修改 Replica 数量可能会短暂影响数据读取。请谨慎操作。

手动扩缩容

您可以选择通过控制台或 RESTful API 调整集群 Replica 数量。

以下 Demo 展示了如何在 Zilliz Cloud 控制台中手动调整 Replica 数量。

您还可以使用 RESTful API 设置 Replica。replica 参数的取值应为 1 到 8 之间的整数。更多详情,请参考修改集群副本数量

export TOKEN="YOUR_API_KEY"
export CLUSTER_ID="inxx-xxxxxxxxxxxxxxx"

curl --request POST \
--url "${BASE_URL}/v2/clusters/${CLUSTER_ID}/modify" \
--header "Authorization: Bearer ${TOKEN}" \
--header "Accept: application/json" \
--header "Content-Type: application/json" \
-d '{
"replica": 2
}'

定时扩缩容

您可以通过 Web 控制台或 RESTful API 设置集群 Replica 定时扩缩容。

定时扩缩容的 2 个调度计划之间时间间隔必须大于 30 分钟。

如需使用定时扩缩容的高级模式并了解如何编写 Cron 表达式,请参考 Cron 表达式

以下 Demo 展示如何设置 Replica 定时扩缩容

此外,您还可以通过 RESTful API 设置定时扩缩容。详情请参考修改集群配置

export TOKEN="YOUR_API_KEY"
export CLUSTER_ID="inxx-xxxxxxxxxxxxxxx"

curl --request POST \
--url "${BASE_URL}/v2/clusters/${CLUSTER_ID}/modify" \
--header "Authorization: Bearer ${TOKEN}" \
--header "Accept: application/json" \
--header "Content-Type: application/json" \
-d '{
"autoscaling": {
"replica": {
"schedules": [
{
"cron": "10 0 0 0 0 ?",
"target": 2
}
]
}
}
}'

动态扩缩容

Zilliz Cloud 支持 Replica 动态扩缩容。启用后,系统会基于实时 Query CU 计算资源指标自动调整 Replica 数量,确保高效处理工作负载且不中断服务。

在设置动态扩缩容时,您可以配置以下范围:

  • 最小 Replica:默认为当前 Replica 数量。

  • 最大 Replica:默认为当前 Replica 数量的 1 倍。最大不可超过 10。如需调整上限,请提交工单

📘说明
  • 选择比当前 Replica 数量小的最大值会立刻触发缩容。

  • 选择比当前 Replica 数量大的最小值会立刻触发扩容。

触发条件

  • 自动扩容:CU 计算资源连续 2 分钟超过 60% 时触发。

  • 自动缩容:CU 计算资源连续 10 分钟低于 40% 时触发。

扩缩容目标值计算

以下公式说明了 Zilliz Cloud 在动态扩缩容事件中如何计算目标 Replica 数量。动态扩缩容目标值的计算公式旨在将您的 CU 计算资源维持在 50% 的目标值。

目标 Replica 数量 = 当前 Replica 数量 × (当前指标值 / 目标指标值)

变量名称

描述

目标 Replica 数量

系统计划将集群扩缩容至的新 Replica 数量

当前 Replica 数量

集群当前的 Replica 数量

当前指标值

当前测得的 CU 计算资源指标值

目标指标值

扩缩容后期望达到的 CU 计算资源值,固定为 50

示例 假设已启用动态扩缩容,且满足以下条件:

  • 当前 Replica 数量:1

  • 集群 CU 加载容量:连续 10 分钟超过 60%

将触发动态扩容事件。目标 Replica 数量计算如下:

1 × (60 / 50) = 1.2

该值向上取整到下一个 Replica 数量,即扩容至 2。

操作步骤

以下 Demo 展示了如何启用 Replica 动态扩缩容功能。

此外,您还可以通过 RESTful API 设置动态扩缩容。详情请参考修改集群配置

export TOKEN="YOUR_API_KEY"
export CLUSTER_ID="inxx-xxxxxxxxxxxxxxx"

curl --request POST \
--url "${BASE_URL}/v2/clusters/${CLUSTER_ID}/modify" \
--header "Authorization: Bearer ${TOKEN}" \
--header "Accept: application/json" \
--header "Content-Type: application/json" \
-d '{
"autoscaling": {
"replica": {
"min": 1,
"max": 2
}
}
}'

查看集群扩缩容进度

当您发送手动扩缩容请求或集群自动触发动态扩缩容时,会生成一条任务记录。您可以前往任务中心查看进度。

当扩缩容任务正在进行中时,您的集群状态将转为“修改中”。待扩缩容任务完成,您的集群状态将转为“运行中”。