一、非预热
1、创建limiter,参数为QPS,允许每秒的流量(即每秒产生的令牌数)
接着跟进方法,可以看到stableIntervalMicros为产生令牌的时间间隔
继续,最大令牌数等于permitsPersecond,maxBurstSeconds默认为1,接着初始化桶内令牌数量,如果原来最大令牌数为正无穷,则初始化令牌数为新的最大令牌数(不知道什么场景下会出现这个),如果原来最大令牌数为0,则初始化令牌数为0,否则计算(这里也不知道什么情况会出现),至此limiter初始化完毕.
2、获取令牌;分为两步,第一步,获取本次需要等待的时间,第二步,线程sleep