限流

255 阅读1分钟

1.计数器限流

package cn.gov.zcy.tender.pubfund;

import org.springframework.stereotype.Component;

@Component
public class CounterLimit {
    private Long initTime=System.currentTimeMillis();
    /**
     * 时间间隔为1分钟
     */
    private Long interval=60000L;

    private int reqCount=0;
    private int limit =100;


    public Boolean grant(){
        Long now = System.currentTimeMillis();
        if(now<initTime+interval){
            reqCount++;
            return reqCount<limit;
        }else{
            initTime=now;
            reqCount=1;
            return Boolean.TRUE;
        }
    }
}