• 速率限制配置
  • Actions
  • Source Cluster
  • Destination Cluster
  • Request Headers
  • Remote Address
  • Generic Key
  • Header Value Match
  • 返回

    速率限制配置

    全局速率限制架构概述。

    1. {
    2. "stage": "...",
    3. "disable_key": "...",
    4. "actions": []
    5. }
    • stage

      (optional, integer) 指在过滤器中设置的阶段。速率限制配置仅适用于具有相同阶段编号的过滤器。默认的阶段编号是0。

      注意:对于阶段编号,过滤器支持0-10的范围。

    • disable_key

      (optional, string) 在运行时设置的key,用于禁用此速率限制配置。

    • actions

      (required, array) 将应用于此速率限制配置的操作列表。顺序很重要,因为这些操作是按顺序处理的,描述符是通过在该顺序中附加描述符条目来组成的。如果某个操作无法附加描述符条目,则不会为该配置生成描述符。请参阅相关操作文档。

    Actions

    1. {
    2. "type": "..."
    3. }
    • type

      (required, string) 要执行的速率限制操作的类型。当前支持的操作类型是source_clusterdestination_clusterrequest_headersremote_addressgeneric_keyheader_value_match

    Source Cluster

    1. {
    2. "type": "source_cluster"
    3. }

    以下描述符条目被追加到描述符中:

    1. ("source_cluster", "<local service cluster>")

    <local service cluster> 是从 --service-cluster 选项派生出来的.

    Destination Cluster

    1. {
    2. "type": "destination_cluster"
    3. }

    以下描述符条目被追加到描述符中:

    1. ("destination_cluster", "<routed target cluster>")

    一旦请求与路由表规则匹配,路由的集群就由以下路由表配置设置之一确定:

    • cluster 指定要路由到的上游群集。
    • weighted_clusters 从一组具有权重属性的集群组中随机选择一个集群。
    • cluster_header 指定从请求中的头部获取目标群集。

    Request Headers

    1. {
    2. "type": "request_headers",
    3. "header_name": "...",
    4. "descriptor_key" : "..."
    5. }
    • header_name

      (required, string) 要从请求头中查询的该头的名称。头的值用于填充descriptor_key的描述符条目的值。

    • descriptor_key

      (required, string) 在描述符条目中使用的关键。

    当一个头包含一个与header_name匹配的关键字时,附加下面的描述符条目:

    1. ("<descriptor_key>", "<header_value_queried_from_header>")

    Remote Address

    1. {
    2. "type": "remote_address"
    3. }

    以下描述符条目被追加到描述符中,并使用来自x-forwarded-for的可信地址填充:

    1. ("remote_address", "<trusted address from x-forwarded-for>")

    Generic Key

    1. {
    2. "type": "generic_key",
    3. "descriptor_value" : "..."
    4. }
    • descriptor_value

      (required, string) 描述符条目中使用的值。

    以下描述符条目被追加到描述符中:

    1. ("generic_key", "<descriptor_value>")

    Header Value Match

    1. {
    2. "type": "header_value_match",
    3. "descriptor_value" : "...",
    4. "expect_match" : "...",
    5. "headers" : []
    6. }
    • descriptor_value

      (required, string) 描述符条目中使用的值。

    • expect_match

      (optional, boolean) 如果设置为true,则该操作将在请求与头部匹配时附加描述符条目。如果设置为false,则该操作将在请求与头部不匹配时附加描述符条目。默认值是true。

    • headers

      (required, array) 指定速率限制操作应匹配的一组头。将检查请求的头部与配置中所有指定的头部。如果配置中的所有报头都存在于具有相同值的请求中(或者如果没有配置value字段,则认为存在),则匹配将发生。

    以下描述符条目被追加到描述符中: .. code-block:: cpp

    1. (“header_match”, “<descriptor_value>”)

    返回

    • 上一级
    • 首页目录