Rate Limiting
概述
Rate Limiting 策略用于控制发送到 API 的请求速率。这有助于防止滥用,有效管理流量负载,并保护后端服务免受过多请求的压倒。该策略可以配置不同的 Redis 存储选项来管理请求限制。
通过配置 Rate Limiting 策略,API 提供者可以有效管理流量,确保资源的公平分配,并保护后端服务免受过载。
配置详情
下表概述了可用于速率限制策略的关键配置选项:
字段名称 | 描述 | 示例值 |
---|---|---|
Maximum requests per second | 定义每秒允许的最大请求数。 | 100 |
Redis timeout (ms) | 设置 Redis 操作的超时值(以毫秒为单位)。 | 2000 |
Redis DB Select | 允许选择用于速率限制计数器的 Redis 存储类型。选项包括 APIMRedis、CustomRedis 或 RedisCluster。 | APIMRedis |
Redis 存储选项
根据系统的要求,用户可以从以下 Redis 存储类型中进行选择:
- APIMRedis(默认) - 使用系统内置的 Redis 实例。
- CustomRedis - 允许用户通过指定详细的连接参数来配置自己的 Redis 实例。
- RedisCluster - 使用 Redis 集群设置以实现可扩展性和容错性。
APIMRedis 推荐用于标准用例,而 CustomRedis 和 RedisCluster 应用于需要专用 Redis 配置的高级场景。
自定义 Redis 配置字段
如果选择 CustomRedis,则必须配置以下附加字段:
字段名称 | 描述 | 示例值 |
---|---|---|
redisHost | Redis 服务器的主机名。 | 127.0.0.1 |
redisPort | 用于 Redis 连接的端口。 | 6379 |
redisPassword | Redis 身份验证的密码(如果需要)。 | password |
redisDatabase | 指定要使用的 Redis 数据库。 | 1 |
redis_pool_size | 定义可以保留在池中的 Redis 连接数。 | 1000 |
redis_pool_backlog | 指定当池满时可以排队的待处理请求数。 | 30 |
Redis 集群配置字段
如果选择 RedisCluster,则必须设置附加字段:
字段名称 | 描述 | 示例值 |
---|---|---|
redis_cluster_nodes | Redis 集群节点的地址。 | redis-cluster.apim:6379 |
redis_cluster_password | 访问 Redis 集群的密码(如果适用)。 | password |
redis_cluster_name | 定义 Redis 集群的名称。 | kong_redis_cluster |
redis_connect_timeout | 建立 Redis 连接的超时时间(以毫秒为单位)。 | 1000 |
redis_read_timeout | 从 Redis 读取响应的超时时间(以毫秒为单位)。 | 1000 |
redis_send_timeout | 发送请求到 Redis 的超时时间(以毫秒为单位)。 | 1000 |
redis_pool_size | Redis 池中可以分配的最大连接数。 | 1000 |
redis_pool_backlog | 如果池满,允许排队的请求数。 | 30 |
redis_keepalive_timeout | 定义空闲连接应保持活动的时间(以毫秒为单位)。 | 55000 |