速率限制:在某个应用里的某个接口的逻辑里编写限流的逻辑,限流的逻辑包括对什么样的请求进行限流,限流的内容(一次请求对限流器的影响);从请求中取出维度数据,构建限流器;
Istio的速率限制功能基于Mixer架构;
quota Template:解决从请求中取哪些内容作为构建限流器的唯一标识;每个有名称的 Quota Instance,都代表了一套计数器。这一个集合就是所有 Quota dimensions 的笛卡尔积构成的组合。
memquota或者redisquota是实现速率限制的功能的底层的封装;其可以针对Quota dimensions 的笛卡尔积构成的组合中的部分作特定的速率限制;
rule:用来控制限流生效的时机
QuotaSpec:用来声明限流的内容,就是一次符合rule的条件的将要被限流机制处理的请求,对其关联的计数器的影响;
QuotaSpecBinding:限流器影响的应用;配置了具体的应用后,就相当于将限流控制的逻辑的代码写在了对应的应用中;
请求在QuotaSpecBinding中配置的service,如果请求携带的Mixer属性符合rule中的条件,即会触发限流逻辑,如果不符合,则不会出发限流逻辑;触发限流逻辑之后,会根据QuotaSpec(一次请求消耗多少资源)和memquota(redisquota)(此请求关联的计数器有多少资源)判断是否要拒绝此请求。