You need to enable JavaScript to run this app.
文档中心
云搜索服务

云搜索服务

复制全文
下载 pdf
插件使用指导
Byte-throttler 限流插件使用说明
复制全文
下载 pdf
Byte-throttler 限流插件使用说明
云搜索实例在业务流量增长过程中,可能出现 QPS 或写入吞吐量突增的情况。在实例资源保持不变的情况下,突增的业务流量可能导致请求延迟(Latency)升高、集群 Pending,甚至节点异常。为降低突发流量对实例稳定性的影响,云搜索服务提供限流插件,可对业务 QPS 和写入吞吐量进行限制,帮助实例在流量突增场景下保持稳定运行。​
前提条件​
Byte-throttler 插件默认未安装,如果需要使用,请提前自行安装。如何安装,请参见安装系统内置插件。​
注意事项​
  • 从 QPS/吞吐的维度对特定索引的访问进行限制,以避免突发的 QPS 大幅增加导致集群崩溃,或者某些索引 QPS 的增加影响存量业务的 Latency 或其他性能指标的情况。​
  • 不适用于大查询将集群打挂的场景,例如一个极大数据量的 Agg 查询。限流插件无法在该情况下保护云搜索实例。​
  • 目前仅支持 Elasticsearch 7.10.2 版本。​
步骤一:打开限流插件开关​
默认处于关闭状态,使用前需要更新配置打开。​
​
# 查看集群所有默认配置​
# GET _cluster/settings?include_defaults&flat_settings​
PUT _cluster/settings​
{ ​
"transient" : {​
"index.ratelimit.enabled" : "true"​
}​
}​
​
步骤二:增加限流规则​
限流器主要由两部分组成,limiters 定义和 tags 定义。通过 tags 定义资源限制,通过 limiters 定义具体的限流类型和限流阈值。​
  • tags 中的索引名称支持 * 通配符。​
  • 每一条限流规则下可以配置多种限流类型。同一个 limiter name 下支持对 search.qps/writer.qps/write.throughput 的一项或多项设置限流阈值。​
  • 如果一次读写请求有多条限流规则命中,只要有一条触发限流,则会拒绝请求。​
当请求超过限流值之后,实例会拒绝之后发送的请求。返回的 HTTP code 为 429,内容为触发限制的规则及其名称。​
​
查询操作​
RESTful 请求示例​
设置单个索引的查询 QPS 限流​
​
PUT _ratelimit/<limiterName>​
{​
"limiters": {​
"search.qps": "1000"​
},​
"tags": {​
"index": "test_index"​
}​
}​
​
{"limiters": {"search.qps": "1"}, "tags": {"index": "test_index"}}​
​
设置指定名称前缀的索引的查询 QPS 限流​
​
PUT _ratelimit/<limiterName>​
{​
"limiters": {​
"search.qps": "1000"​
},​
"tags": {​
"index": "test_index-*"​
}​
}​
​
设置所有索引的查询总 QPS 限流​
​
PUT _ratelimit/<limiterName>​
{​
"limiters": {​
"search.qps": "1000"​
},​
"tags": {​
"index": "test_index-*"​
}​
}​
​
写入操作​
RESTful 请求示例​
设置单个索引的写入 QPS 限流​
​
PUT _ratelimit/<limiterName>​
{​
"limiters": {​
"write.qps": "1000"​
},​
"tags": {​
"index": "test_index"​
}​
}​
​
设置单个索引的写入吞吐限流​
​
PUT _ratelimit/<limiterName>​
{​
"limiters": {​
"write.throughput": "1048576"​
},​
"tags": {​
"index": "test_index"​
}​
}​
​
设置多个限流器配置​
​
​
PUT _ratelimit/<limiterName>​
{​
"limiters": {​
"search.qps": "1000",​
"write.qps": "1000",​
"write.throughput": "1048576"​
},​
"tags": {​
"index": "test_index"​
}​
}​
​
​
​
步骤三:查看限流规则​
​
操作​
RESTful 请求示例​
获取所有限流配置​
​
GET _ratelimit/​
​
获取单个指定的限流配置​
​
GET _ratelimit/<limiterName>​
​
​
步骤四:删除限流规则​
​
操作​
RESTful 请求示例​
删除单个指定的限流配置​
​
DELET _ratelimit/<limiterName>​
​
​
步骤五:获取监控信息​
​
操作​
RESTful 请求示例​
获得所有限流器的指标数据​
​
GET _ratelimit/metric​
​
获得指定限流器的指标数据​
​
GET _ratelimit/metric/{limitName}​
​
获得指定节点上所有限流器的指标数据​
​
GET _ratelimit/nodes/{nodeId}/metric​
​
获得指定节点上指定限流器的指标数据​
​
GET _ratelimit/nodes/{nodeId}/metric/{limitName}​
​
​
​
最近更新时间:2026.09.20 11:34:31
这个页面对您有帮助吗?
有用
有用
无用
无用