请求配额可以对服务请求进行限流配置:
·Quota——指定用于配额限制的数据维度。可以理解为需要从请求中提取的信息及其提取规则,如:源地址、目标地址、目标版本等。示例如下:
apiVersion: "config.istio.io/v1alpha2" kind: quota metadata: name: requestcount namespace: istio-system spec: dimensions: source: request.headers["x-forwarded-for"] | "unknown" destination: destination.labels["app"] | destination.service | "unknown" destinationVersion: destination.labels["version"] | "unknown"
·Redisquota——基于Redis实现的具体Quota,使用Quota定义的规则进行数据维度提取,指定具体的维度来进行配额。
·Memquota——基于内存实现的具体Quota,使用Quota定义的规则进行数据维度提取,指定具体的维度来进行配额。
·Quotaspec——定义指定Quota配额标准,例如:每次请求计数加1,或者每次请求计数加2,可以方便地用于限流、计费等场景。
·Quotaspecbinding——把Quotaspec和具体的Service相绑定。
·Rule——把配置的Instance对象传递给Handler来处理,在配额功能中使用时,负责绑定Quota和具体Quota实现,把Quota对象传递给具体的Quota进行处理。