Replica 扩缩容
Zilliz Cloud 支持针对集群创建 Replica。Replica 是对集群中数据和资源的拷贝。使用 Replica 可以提升查询吞吐量和系统稳定性。
对于数据量较小但 QPS 出现瓶颈的用户而言,增加 Replica 数量能分布查询负载,从而整体提升查询吞吐量。为了提升性能,您可以在指标页面查看 Query CU 计算资源,判断是否需要扩容。
请注意,增加 Replica 数量并不会提升集群容量。影响集群数据容量的唯一因素是 CU 规格。如需提升集群数据容量,请参考集群扩缩容。
本文介绍如何为 Zilliz Cloud 集群设置 Replica。
使用限制
在集群创建完成后,满足以下条件时,您可以设置 Replica:
-
集群 Query CU 数量大于等于 8。
-
Query CU 数量 x Replica 数量不得超过 256。
修改 Replica 数量可能会短暂影响数据读取。请谨慎操作。
手动扩缩容
您可以选择通过控制台或 RESTful API 调整集群 Replica 数量。
以下 Demo 展示了如何在 Zilliz Cloud 控制台中手动调整 Replica 数量。
当您在 集群 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
}
}
}'
查看集群扩缩容进度
当您发送手动扩缩容请求或集群自动触发动态扩缩容时,会生成一条任务记录。您可以前往任务中心查看进度。
当扩缩容任务正在进行中时,您的集群状态将转为“修改中”。待扩缩容任务完成,您的集群状态将转为“运行中”。