请求速率限制强制策略

工作负荷组的请求速率限制强制策略控制如何强制执行请求速率限制。

策略对象

请求速率限制策略具有以下属性:

名称 支持的值 默认值 说明
QueriesEnforcementLevel ClusterQueryHead QueryHead 指示查询的强制级别。
CommandsEnforcementLevel ClusterDatabase Database 指示命令的强制级别。

请求速率限制强制级别

可在以下级别之一强制执行请求速率限制:

  • Cluster
    • 速率限制由单个群集管理节点强制执行。
  • Database
    • 速率限制由管理请求发送到的数据库的数据库管理节点强制执行。
    • 如果有多个数据库管理节点,则配置的速率限制实际上将乘以数据库管理节点的数量。
  • QueryHead
    • 查询的速率限制由查询路由到的查询头节点强制执行。
    • 此选项会影响以强或弱查询一致性发送的查询。
      • 强一致性查询在数据库管理节点上运行,配置的速率限制实际上将乘以数据库管理节点的数量。
      • 对于弱一致性查询,配置的速率限制实际上将乘以查询头节点的数量。
    • 此选项不适用于管理命令。

注意

  • 如果策略未定义 (null),则默认强制级别将同时适用于命令和查询。
  • 无论策略中配置的值如何,群集范围命令的速率限制始终在群集级别强制执行。 例如:用于管理群集级别策略的管理命令。

示例

设置

  • 群集有 10 个节点,如下所示:

    • 一个群集管理节点。
    • 两个数据库管理节点(分别管理 50% 的群集数据库)。
    • 50% 的尾节点(10 个中的 5 个)可充当弱一致性查询的查询头。
  • default 工作负荷组通过以下策略进行定义:

    "RequestRateLimitPolicies": [
        {
            "IsEnabled": true,
            "Scope": "WorkloadGroup",
            "LimitKind": "ConcurrentRequests",
            "Properties": {
                "MaxConcurrentRequests": 200
            }
        }
    ],
    "RequestRateLimitsEnforcementPolicy": {
        "QueriesEnforcementLevel": "QueryHead",
        "CommandsEnforcementLevel": "Database"
    }
    

有效速率限制

default 工作负荷组的有效速率限制为:

  • 并发群集范围管理命令的最大数目为 200
  • 并发数据库范围管理命令的最大数目为
    2(数据库管理节点数)x 200(每个管理节点的最大值)= 400
  • 并发强一致性查询的最大数目为
    2(数据库管理节点数)x 200(每个管理节点的最大值)= 400
  • 并发弱一致性查询的最大数目为
    5(查询头数)x 200(每个查询头的最大值) = 1000