速率限制配置
全局速率限制架构概述。
{
"stage": "...",
"disable_key": "...",
"actions": []
}
stage
(optional, integer) 指在过滤器中设置的阶段。速率限制配置仅适用于具有相同阶段编号的过滤器。默认的阶段编号是0。注意:对于阶段编号,过滤器支持0-10的范围。
disable_key
(optional, string) 在运行时设置的key,用于禁用此速率限制配置。actions
(required, array) 将应用于此速率限制配置的操作列表。顺序很重要,因为这些操作是按顺序处理的,描述符是通过在该顺序中附加描述符条目来组成的。如果某个操作无法附加描述符条目,则不会为该配置生成描述符。请参阅相关操作文档。
Actions
{
"type": "..."
}
- type
(required, string) 要执行的速率限制操作的类型。当前支持的操作类型是source_cluster
,destination_cluster
,request_headers
,remote_address
,generic_key
和header_value_match
。
Source Cluster
{
"type": "source_cluster"
}
以下描述符条目被追加到描述符中:
("source_cluster", "<local service cluster>")
<local service cluster>
是从 --service-cluster
选项派生出来的.
Destination Cluster
{
"type": "destination_cluster"
}
以下描述符条目被追加到描述符中:
("destination_cluster", "<routed target cluster>")
一旦请求与路由表规则匹配,路由的集群就由以下路由表配置设置之一确定:
- cluster 指定要路由到的上游群集。
- weighted_clusters 从一组具有权重属性的集群组中随机选择一个集群。
- cluster_header 指定从请求中的头部获取目标群集。
Request Headers
{
"type": "request_headers",
"header_name": "...",
"descriptor_key" : "..."
}
header_name
(required, string) 要从请求头中查询的该头的名称。头的值用于填充descriptor_key
的描述符条目的值。descriptor_key
(required, string) 在描述符条目中使用的关键。
当一个头包含一个与header_name
匹配的关键字时,附加下面的描述符条目:
("<descriptor_key>", "<header_value_queried_from_header>")
Remote Address
{
"type": "remote_address"
}
以下描述符条目被追加到描述符中,并使用来自x-forwarded-for的可信地址填充:
("remote_address", "<trusted address from x-forwarded-for>")
Generic Key
{
"type": "generic_key",
"descriptor_value" : "..."
}
- descriptor_value
(required, string) 描述符条目中使用的值。
以下描述符条目被追加到描述符中:
("generic_key", "<descriptor_value>")
Header Value Match
{
"type": "header_value_match",
"descriptor_value" : "...",
"expect_match" : "...",
"headers" : []
}
descriptor_value
(required, string) 描述符条目中使用的值。expect_match
(optional, boolean) 如果设置为true,则该操作将在请求与头部匹配时附加描述符条目。如果设置为false,则该操作将在请求与头部不匹配时附加描述符条目。默认值是true。headers
(required, array) 指定速率限制操作应匹配的一组头。将检查请求的头部与配置中所有指定的头部。如果配置中的所有报头都存在于具有相同值的请求中(或者如果没有配置value
字段,则认为存在),则匹配将发生。
以下描述符条目被追加到描述符中: .. code-block:: cpp
(“header_match”, “<descriptor_value>”)