Redis Quota

redisquota 适配器可以用来给 Istio 的配额管理系统提供支持。它使用 Redis 服务器来存储配额数据。

这一适配器支持 quota 模板

参数

redisquota 适配器支持固定或滚动窗口算法的速率限制配额管理。它使用 Redis 存储共享数据。

配置样例:

redisServerUrl: localhost:6379
connectionPoolSize: 10
quotas:
  - name: requestcount.quota.istio-system
    maxAmount: 50
    validDuration: 60s
    bucketDuration: 1s
    rateLimitAlgorithm: ROLLING_WINDOW
    overrides:
      - dimensions:
          destination: ratings
          source: reviews
        maxAmount: 12
      - dimensions:
          destination: reviews
        maxAmount: 5
字段类型描述
quotasParams.Quota[]已知的 quota 列表,其中至少包含一个 quota 配置
redisServerUrlstringRedis 连接字符串,例如 localhost:6379
connectionPoolSizeint64Redis 的最大闲置连接数。缺省设置为每 CPU 10 连接,CPU 数量来自 runtime.NumCPU

Override

字段类型描述
dimensionsmap<string, string>为覆盖配置指定的 Dimension。字符串表达的 Dimension 来自模板配置,这个值不能为空
maxAmountint64覆盖 quota 配置的上限值。这个值必须大于零

Quota

字段类型描述
namestring配额的名称
maxAmountint64配额的上限,取值应大于零
validDurationgoogle.protobuf.Duration在自动释放之前,已分配数额保持有效的时间长度。这只对速率限制配额有效,取值必须大于零
bucketDurationgoogle.protobuf.Duration如果 rateLimitAlgorithm 设置为 FIXED_WINDOW,该字段无效,取值必须大于零且小于 validDuration
rateLimitAlgorithmParams.QuotaAlgorithm配额管理算法,缺省值为 FIXED_WINDOW
overridesParams.Override[]这一配额的相关覆盖内容,第一次覆盖优先生效

QuotaAlgorithm

速率限制的算法。

字段描述
FIXED_WINDOW固定窗口算法允许出现两倍的速率峰值,滑动窗口算法不会出现这样的情况
ROLLING_WINDOW滑动窗口算法提供更加精确的控制,但是也会提高对 Redis 资源的消耗