Istio#速率限制详解

速率限制:在某个应用里的某个接口的逻辑里编写限流的逻辑,限流的逻辑包括对什么样的请求进行限流,限流的内容(一次请求对限流器的影响);从请求中取出维度数据,构建限流器;

Istio的速率限制功能基于Mixer架构;

quota Template:解决从请求中取哪些内容作为构建限流器的唯一标识;每个有名称的 Quota Instance,都代表了一套计数器。这一个集合就是所有 Quota dimensions 的笛卡尔积构成的组合。

memquota或者redisquota是实现速率限制的功能的底层的封装;其可以针对Quota dimensions 的笛卡尔积构成的组合中的部分作特定的速率限制;

rule:用来控制限流生效的时机

QuotaSpec:用来声明限流的内容,就是一次符合rule的条件的将要被限流机制处理的请求,对其关联的计数器的影响;

QuotaSpecBinding:限流器影响的应用;配置了具体的应用后,就相当于将限流控制的逻辑的代码写在了对应的应用中;

请求在QuotaSpecBinding中配置的service,如果请求携带的Mixer属性符合rule中的条件,即会触发限流逻辑,如果不符合,则不会出发限流逻辑;触发限流逻辑之后,会根据QuotaSpec(一次请求消耗多少资源)和memquota(redisquota)(此请求关联的计数器有多少资源)判断是否要拒绝此请求。

你可能感兴趣的:(Istio)