跳到主要内容

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

Rate-Limiting

Redis 存储选项

根据系统的要求,用户可以从以下 Redis 存储类型中进行选择:

  • APIMRedis(默认) - 使用系统内置的 Redis 实例。
  • CustomRedis - 允许用户通过指定详细的连接参数来配置自己的 Redis 实例。
  • RedisCluster - 使用 Redis 集群设置以实现可扩展性和容错性。

APIMRedis 推荐用于标准用例,而 CustomRedisRedisCluster 应用于需要专用 Redis 配置的高级场景。

自定义 Redis 配置字段

如果选择 CustomRedis,则必须配置以下附加字段:

字段名称描述示例值
redisHostRedis 服务器的主机名。127.0.0.1
redisPort用于 Redis 连接的端口。6379
redisPasswordRedis 身份验证的密码(如果需要)。password
redisDatabase指定要使用的 Redis 数据库。1
redis_pool_size定义可以保留在池中的 Redis 连接数。1000
redis_pool_backlog指定当池满时可以排队的待处理请求数。30

Redis 集群配置字段

如果选择 RedisCluster,则必须设置附加字段:

字段名称描述示例值
redis_cluster_nodesRedis 集群节点的地址。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_sizeRedis 池中可以分配的最大连接数。1000
redis_pool_backlog如果池满,允许排队的请求数。30
redis_keepalive_timeout定义空闲连接应保持活动的时间(以毫秒为单位)。55000