limit-conn
limit-conn 插件通过限制并发连接数来限制请求速率。根据配置,超过阈值的请求将被延迟或拒绝,从而确保受控的资源使用并防止过载。
示例
以下示例演示了如何在不同场景下配置 limit-conn。
基于远程地址进行速率限制
以下示例演示了如何使用 limit-conn 通过 remote_addr 对请求进行速率限制,并配置连接数和突发阈值。
创建一个启用了 limit-conn 插件的路由:
curl "http://127.0.0.1:9180/apisix/admin/routes" -X PUT \
-H "X-API-KEY: ${ADMIN_API_KEY}" \
-d '{
"id": "limit-conn-route",
"uri": "/get",
"plugins": {
"limit-conn": {
"conn": 2,
"burst": 1,
"default_conn_delay": 0.1,
"key_type": "var",
"key": "remote_addr",
"policy": "local",
"rejected_code": 429
}
},
"upstream": {
"type": "roundrobin",
"nodes": {
"httpbin.org:80": 1
}
}
}'
❶ conn:允许 2 个并发请求。
❷ burst:允许 1 个额外的并发请求。
❸ default_conn_delay:允许超过 conn + burst 的并发请求有 0.1 秒的处理延迟。
❹ key_type:设置为 vars,以将 key 解释为变量。
❺ key:通过请求的 remote_address 计算速率限制计数。
❻ policy:使用内存中的本地计数器。
❼ rejected_code