限流算法(一) 简单限流

通过记录时间 间隔 和计数器 进行限流

package com.boolib.ather;

public class 限流算法 {


    public static void main(String[] args) {

        //用来记录打印 放行次数
        Integer i = 0;

        //到了限制数量之后 只打印一次 禁止通行 
        Boolean t =false;

        while(true){

            if(Util.canOut()){
                i++;
                System.out.println(Util.timestamp +"放行"+i+"次");
                t=true;
            }
            else{
                i=0;
                if(t){
                    System.out.println("拒绝通行");
                    t=false;
                }

            }

        }
    }
}


class Util{

    //当前时间
    public static Integer timestamp = getTimeNow();

    //计数器
    private static Integer count  = 0 ;

    //最大限制
    private  final  static Integer maxCount = 10;

    //时间间隔 
    private  final  static Integer incrValue = 2;

    public static boolean canOut(){

        Integer timeNow = getTimeNow();

        if(timeNow<timestamp +  incrValue){

            count++;

            return count<maxCount;

        }

        count = 0 ;

        timestamp =timeNow;

        return true;

    }


    public static Integer getTimeNow(){

        long time = System.currentTimeMillis()/1000;

        return Math.toIntExact(time);
    }
}

方便查看输出

/usr/lib/jvm/java-1.11.0-openjdk-amd64/bin/java -javaagent:/usr/share/intellij-idea-community/lib/idea_rt.jar=41921:/usr/share/intellij-idea-community/bin -Dfile.encoding=UTF-8 -classpath /home/nier/IdeaProjects/untitled/out/production/untitled com.boolib.ather.限流算法
1598283237放行1次
1598283237放行2次
1598283237放行3次
1598283237放行4次
1598283237放行5次
1598283237放行6次
1598283237放行7次
1598283237放行8次
1598283237放行9次
拒绝通行
1598283239放行1次
1598283239放行2次
1598283239放行3次
1598283239放行4次
1598283239放行5次
1598283239放行6次
1598283239放行7次
1598283239放行8次
1598283239放行9次
1598283239放行10次
拒绝通行
1598283241放行1次
1598283241放行2次
1598283241放行3次
1598283241放行4次
1598283241放行5次
1598283241放行6次
1598283241放行7次
1598283241放行8次
1598283241放行9次
1598283241放行10次
拒绝通行
1598283243放行1次
1598283243放行2次
1598283243放行3次
1598283243放行4次
1598283243放行5次
1598283243放行6次
1598283243放行7次
1598283243放行8次
1598283243放行9次
1598283243放行10次
拒绝通行
1598283245放行1次
1598283245放行2次
1598283245放行3次
1598283245放行4次
1598283245放行5次
1598283245放行6次
1598283245放行7次
1598283245放行8次
1598283245放行9次
1598283245放行10次
拒绝通行
1598283247放行1次
1598283247放行2次
1598283247放行3次
1598283247放行4次
1598283247放行5次
1598283247放行6次
1598283247放行7次
1598283247放行8次
1598283247放行9次
1598283247放行10次
拒绝通行
1598283249放行1次
1598283249放行2次
1598283249放行3次
1598283249放行4次
1598283249放行5次
1598283249放行6次
1598283249放行7次
1598283249放行8次
1598283249放行9次
1598283249放行10次
拒绝通行
1598283251放行1次
1598283251放行2次
1598283251放行3次
1598283251放行4次
1598283251放行5次
1598283251放行6次
1598283251放行7次
1598283251放行8次
1598283251放行9次
1598283251放行10次
拒绝通行
1598283253放行1次
1598283253放行2次
1598283253放行3次
1598283253放行4次
1598283253放行5次
1598283253放行6次
1598283253放行7次
1598283253放行8次
1598283253放行9次
1598283253放行10次
拒绝通行
1598283255放行1次
1598283255放行2次
1598283255放行3次
1598283255放行4次
1598283255放行5次
1598283255放行6次
1598283255放行7次
1598283255放行8次
1598283255放行9次
1598283255放行10次
拒绝通行
1598283257放行1次
1598283257放行2次
1598283257放行3次
1598283257放行4次
1598283257放行5次
1598283257放行6次
1598283257放行7次
1598283257放行8次
1598283257放行9次
1598283257放行10次
拒绝通行
1598283259放行1次
1598283259放行2次
1598283259放行3次
1598283259放行4次
1598283259放行5次
1598283259放行6次
1598283259放行7次
1598283259放行8次
1598283259放行9次
1598283259放行10次
拒绝通行
1598283261放行1次
1598283261放行2次
1598283261放行3次
1598283261放行4次
1598283261放行5次
1598283261放行6次
1598283261放行7次
1598283261放行8次
1598283261放行9次
1598283261放行10次
拒绝通行
1598283263放行1次
1598283263放行2次
1598283263放行3次
1598283263放行4次
1598283263放行5次
1598283263放行6次
1598283263放行7次
1598283263放行8次
1598283263放行9次
1598283263放行10次
拒绝通行
1598283265放行1次
1598283265放行2次
1598283265放行3次
1598283265放行4次
1598283265放行5次
1598283265放行6次
1598283265放行7次
1598283265放行8次
1598283265放行9次
1598283265放行10次
拒绝通行
1598283267放行1次
1598283267放行2次
1598283267放行3次
1598283267放行4次
1598283267放行5次
1598283267放行6次
1598283267放行7次
1598283267放行8次
1598283267放行9次
1598283267放行10次
拒绝通行
1598283269放行1次
1598283269放行2次
1598283269放行3次
1598283269放行4次
1598283269放行5次
1598283269放行6次
1598283269放行7次
1598283269放行8次
1598283269放行9次
1598283269放行10次
拒绝通行
1598283271放行1次
1598283271放行2次
1598283271放行3次
1598283271放行4次
1598283271放行5次
1598283271放行6次
1598283271放行7次
1598283271放行8次
1598283271放行9次
1598283271放行10次
拒绝通行
1598283273放行1次
1598283273放行2次
1598283273放行3次
1598283273放行4次
1598283273放行5次
1598283273放行6次
1598283273放行7次
1598283273放行8次
1598283273放行9次
1598283273放行10次
拒绝通行
1598283275放行1次
1598283275放行2次
1598283275放行3次
1598283275放行4次
1598283275放行5次
1598283275放行6次
1598283275放行7次
1598283275放行8次
1598283275放行9次
1598283275放行10次
拒绝通行
1598283277放行1次
1598283277放行2次
1598283277放行3次
1598283277放行4次
1598283277放行5次
1598283277放行6次
1598283277放行7次
1598283277放行8次
1598283277放行9次
1598283277放行10次
拒绝通行
1598283279放行1次
1598283279放行2次
1598283279放行3次
1598283279放行4次
1598283279放行5次
1598283279放行6次
1598283279放行7次
1598283279放行8次
1598283279放行9次
1598283279放行10次
拒绝通行
1598283281放行1次
1598283281放行2次
1598283281放行3次
1598283281放行4次
1598283281放行5次
1598283281放行6次
1598283281放行7次
1598283281放行8次
1598283281放行9次
1598283281放行10次
拒绝通行
1598283283放行1次
1598283283放行2次
1598283283放行3次
1598283283放行4次
1598283283放行5次
1598283283放行6次
1598283283放行7次
1598283283放行8次
1598283283放行9次
1598283283放行10次
拒绝通行
1598283285放行1次
1598283285放行2次
1598283285放行3次
1598283285放行4次
1598283285放行5次
1598283285放行6次
1598283285放行7次
1598283285放行8次
1598283285放行9次
1598283285放行10次
拒绝通行
1598283287放行1次
1598283287放行2次
1598283287放行3次
1598283287放行4次
1598283287放行5次
1598283287放行6次
1598283287放行7次
1598283287放行8次
1598283287放行9次
1598283287放行10次
拒绝通行
1598283289放行1次
1598283289放行2次
1598283289放行3次
1598283289放行4次
1598283289放行5次
1598283289放行6次
1598283289放行7次
1598283289放行8次
1598283289放行9次
1598283289放行10次
拒绝通行
1598283291放行1次
1598283291放行2次
1598283291放行3次
1598283291放行4次
1598283291放行5次
1598283291放行6次
1598283291放行7次
1598283291放行8次
1598283291放行9次
1598283291放行10次
拒绝通行
1598283293放行1次
1598283293放行2次
1598283293放行3次
1598283293放行4次
1598283293放行5次
1598283293放行6次
1598283293放行7次
1598283293放行8次
1598283293放行9次
1598283293放行10次
拒绝通行
1598283295放行1次
1598283295放行2次
1598283295放行3次
1598283295放行4次
1598283295放行5次
1598283295放行6次
1598283295放行7次
1598283295放行8次
1598283295放行9次
1598283295放行10次
拒绝通行
1598283297放行1次
1598283297放行2次
1598283297放行3次
1598283297放行4次
1598283297放行5次
1598283297放行6次
1598283297放行7次
1598283297放行8次
1598283297放行9次
1598283297放行10次
拒绝通行
1598283299放行1次
1598283299放行2次
1598283299放行3次
1598283299放行4次
1598283299放行5次
1598283299放行6次
1598283299放行7次
1598283299放行8次
1598283299放行9次
1598283299放行10次
拒绝通行
1598283301放行1次
1598283301放行2次
1598283301放行3次
1598283301放行4次
1598283301放行5次
1598283301放行6次
1598283301放行7次
1598283301放行8次
1598283301放行9次
1598283301放行10次
拒绝通行
1598283303放行1次
1598283303放行2次
1598283303放行3次
1598283303放行4次
1598283303放行5次
1598283303放行6次
1598283303放行7次
1598283303放行8次
1598283303放行9次
1598283303放行10次
拒绝通行
1598283305放行1次
1598283305放行2次
1598283305放行3次
1598283305放行4次
1598283305放行5次
1598283305放行6次
1598283305放行7次
1598283305放行8次
1598283305放行9次
1598283305放行10次
拒绝通行
1598283307放行1次
1598283307放行2次
1598283307放行3次
1598283307放行4次
1598283307放行5次
1598283307放行6次
1598283307放行7次
1598283307放行8次
1598283307放行9次
1598283307放行10次
拒绝通行
1598283309放行1次
1598283309放行2次
1598283309放行3次
1598283309放行4次
1598283309放行5次
1598283309放行6次
1598283309放行7次
1598283309放行8次
1598283309放行9次
1598283309放行10次
拒绝通行
1598283311放行1次
1598283311放行2次
1598283311放行3次
1598283311放行4次
1598283311放行5次
1598283311放行6次
1598283311放行7次
1598283311放行8次
1598283311放行9次
1598283311放行10次
拒绝通行
1598283313放行1次
1598283313放行2次
1598283313放行3次
1598283313放行4次
1598283313放行5次
1598283313放行6次
1598283313放行7次
1598283313放行8次
1598283313放行9次
1598283313放行10次
拒绝通行
1598283315放行1次
1598283315放行2次
1598283315放行3次
1598283315放行4次
1598283315放行5次
1598283315放行6次
1598283315放行7次
1598283315放行8次
1598283315放行9次
1598283315放行10次
拒绝通行
1598283317放行1次
1598283317放行2次
1598283317放行3次
1598283317放行4次
1598283317放行5次
1598283317放行6次
1598283317放行7次
1598283317放行8次
1598283317放行9次
1598283317放行10次
拒绝通行
1598283319放行1次
1598283319放行2次
1598283319放行3次
1598283319放行4次
1598283319放行5次
1598283319放行6次
1598283319放行7次
1598283319放行8次
1598283319放行9次
1598283319放行10次
拒绝通行
1598283321放行1次
1598283321放行2次
1598283321放行3次
1598283321放行4次
1598283321放行5次
1598283321放行6次
1598283321放行7次
1598283321放行8次
1598283321放行9次
1598283321放行10次
拒绝通行
1598283323放行1次
1598283323放行2次
1598283323放行3次
1598283323放行4次
1598283323放行5次
1598283323放行6次
1598283323放行7次
1598283323放行8次
1598283323放行9次
1598283323放行10次
拒绝通行
1598283325放行1次
1598283325放行2次
1598283325放行3次
1598283325放行4次
1598283325放行5次
1598283325放行6次
1598283325放行7次
1598283325放行8次
1598283325放行9次
1598283325放行10次
拒绝通行
1598283327放行1次
1598283327放行2次
1598283327放行3次
1598283327放行4次
1598283327放行5次
1598283327放行6次
1598283327放行7次
1598283327放行8次
1598283327放行9次
1598283327放行10次
拒绝通行
1598283329放行1次
1598283329放行2次
1598283329放行3次
1598283329放行4次
1598283329放行5次
1598283329放行6次
1598283329放行7次
1598283329放行8次
1598283329放行9次
1598283329放行10次
拒绝通行
1598283331放行1次
1598283331放行2次
1598283331放行3次
1598283331放行4次
1598283331放行5次
1598283331放行6次
1598283331放行7次
1598283331放行8次
1598283331放行9次
1598283331放行10次
拒绝通行
1598283333放行1次
1598283333放行2次
1598283333放行3次
1598283333放行4次
1598283333放行5次
1598283333放行6次
1598283333放行7次
1598283333放行8次
1598283333放行9次
1598283333放行10次
拒绝通行
1598283335放行1次
1598283335放行2次
1598283335放行3次
1598283335放行4次
1598283335放行5次
1598283335放行6次
1598283335放行7次
1598283335放行8次
1598283335放行9次
1598283335放行10次
拒绝通行
1598283337放行1次
1598283337放行2次
1598283337放行3次
1598283337放行4次
1598283337放行5次
1598283337放行6次
1598283337放行7次
1598283337放行8次
1598283337放行9次
1598283337放行10次
拒绝通行
1598283339放行1次
1598283339放行2次
1598283339放行3次
1598283339放行4次
1598283339放行5次
1598283339放行6次
1598283339放行7次
1598283339放行8次
1598283339放行9次
1598283339放行10次
拒绝通行
1598283341放行1次
1598283341放行2次
1598283341放行3次
1598283341放行4次
1598283341放行5次
1598283341放行6次
1598283341放行7次
1598283341放行8次
1598283341放行9次
1598283341放行10次
拒绝通行
1598283343放行1次
1598283343放行2次
1598283343放行3次
1598283343放行4次
1598283343放行5次
1598283343放行6次
1598283343放行7次
1598283343放行8次
1598283343放行9次
1598283343放行10次
拒绝通行
1598283345放行1次
1598283345放行2次
1598283345放行3次
1598283345放行4次
1598283345放行5次
1598283345放行6次
1598283345放行7次
1598283345放行8次
1598283345放行9次
1598283345放行10次
拒绝通行
1598283347放行1次
1598283347放行2次
1598283347放行3次
1598283347放行4次
1598283347放行5次
1598283347放行6次
1598283347放行7次
1598283347放行8次
1598283347放行9次
1598283347放行10次
拒绝通行
1598283349放行1次
1598283349放行2次
1598283349放行3次
1598283349放行4次
1598283349放行5次
1598283349放行6次
1598283349放行7次
1598283349放行8次
1598283349放行9次
1598283349放行10次
拒绝通行
1598283351放行1次
1598283351放行2次
1598283351放行3次
1598283351放行4次
1598283351放行5次
1598283351放行6次
1598283351放行7次
1598283351放行8次
1598283351放行9次
1598283351放行10次
拒绝通行
1598283353放行1次
1598283353放行2次
1598283353放行3次
1598283353放行4次
1598283353放行5次
1598283353放行6次
1598283353放行7次
1598283353放行8次
1598283353放行9次
1598283353放行10次
拒绝通行
1598283355放行1次
1598283355放行2次
1598283355放行3次
1598283355放行4次
1598283355放行5次
1598283355放行6次
1598283355放行7次
1598283355放行8次
1598283355放行9次
1598283355放行10次
拒绝通行
1598283357放行1次
1598283357放行2次
1598283357放行3次
1598283357放行4次
1598283357放行5次
1598283357放行6次
1598283357放行7次
1598283357放行8次
1598283357放行9次
1598283357放行10次
拒绝通行
1598283359放行1次
1598283359放行2次
1598283359放行3次
1598283359放行4次
1598283359放行5次
1598283359放行6次
1598283359放行7次
1598283359放行8次
1598283359放行9次
1598283359放行10次
拒绝通行
1598283361放行1次
1598283361放行2次
1598283361放行3次
1598283361放行4次
1598283361放行5次
1598283361放行6次
1598283361放行7次
1598283361放行8次
1598283361放行9次
1598283361放行10次
拒绝通行
1598283363放行1次
1598283363放行2次
1598283363放行3次
1598283363放行4次
1598283363放行5次
1598283363放行6次
1598283363放行7次
1598283363放行8次
1598283363放行9次
1598283363放行10次
拒绝通行
1598283365放行1次
1598283365放行2次
1598283365放行3次
1598283365放行4次
1598283365放行5次
1598283365放行6次
1598283365放行7次
1598283365放行8次
1598283365放行9次
1598283365放行10次
拒绝通行
1598283367放行1次
1598283367放行2次
1598283367放行3次
1598283367放行4次
1598283367放行5次
1598283367放行6次
1598283367放行7次
1598283367放行8次
1598283367放行9次
1598283367放行10次
拒绝通行
1598283369放行1次
1598283369放行2次
1598283369放行3次
1598283369放行4次
1598283369放行5次
1598283369放行6次
1598283369放行7次
1598283369放行8次
1598283369放行9次
1598283369放行10次
拒绝通行
1598283371放行1次
1598283371放行2次
1598283371放行3次
1598283371放行4次
1598283371放行5次
1598283371放行6次
1598283371放行7次
1598283371放行8次
1598283371放行9次
1598283371放行10次
拒绝通行
1598283373放行1次
1598283373放行2次
1598283373放行3次
1598283373放行4次
1598283373放行5次
1598283373放行6次
1598283373放行7次
1598283373放行8次
1598283373放行9次
1598283373放行10次
拒绝通行
1598283375放行1次
1598283375放行2次
1598283375放行3次
1598283375放行4次
1598283375放行5次
1598283375放行6次
1598283375放行7次
1598283375放行8次
1598283375放行9次
1598283375放行10次
拒绝通行
1598283377放行1次
1598283377放行2次
1598283377放行3次
1598283377放行4次
1598283377放行5次
1598283377放行6次
1598283377放行7次
1598283377放行8次
1598283377放行9次
1598283377放行10次
拒绝通行
1598283379放行1次
1598283379放行2次
1598283379放行3次
1598283379放行4次
1598283379放行5次
1598283379放行6次
1598283379放行7次
1598283379放行8次
1598283379放行9次
1598283379放行10次
拒绝通行
1598283381放行1次
1598283381放行2次
1598283381放行3次
1598283381放行4次
1598283381放行5次
1598283381放行6次
1598283381放行7次
1598283381放行8次
1598283381放行9次
1598283381放行10次
拒绝通行
1598283383放行1次
1598283383放行2次
1598283383放行3次
1598283383放行4次
1598283383放行5次
1598283383放行6次
1598283383放行7次
1598283383放行8次
1598283383放行9次
1598283383放行10次
拒绝通行
1598283385放行1次
1598283385放行2次
1598283385放行3次
1598283385放行4次
1598283385放行5次
1598283385放行6次
1598283385放行7次
1598283385放行8次
1598283385放行9次
1598283385放行10次
拒绝通行
1598283387放行1次
1598283387放行2次
1598283387放行3次
1598283387放行4次
1598283387放行5次
1598283387放行6次
1598283387放行7次
1598283387放行8次
1598283387放行9次
1598283387放行10次
拒绝通行
1598283389放行1次
1598283389放行2次
1598283389放行3次
1598283389放行4次
1598283389放行5次
1598283389放行6次
1598283389放行7次
1598283389放行8次
1598283389放行9次
1598283389放行10次
拒绝通行
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Hystrix提供了限流功能,用于在高并发访问下控制系统资源。在Spring Cloud架构中,可以在网关和每个微服务中启用Hystrix进行限流处理。其中,Hystrix支持两种限流算法:线程隔离和信号量隔离。 线程隔离模式下的限流算法是通过控制调用线程允许请求HystrixCommand.GetFallback()的最大数量来实现的。可以通过配置属性hystrix.command.default.execution.isolation.thread.timeoutInMilliseconds来设置超时时间,以及hystrix.command.default.execution.isolation.semaphore.maxConcurrentRequests来设置允许的最大并发请求数量。如果降级线程的并发数超过最大限制数,则会抛出HystrixRuntimeException异常。 信号量隔离模式下的限流算法是通过控制信号量的数量来实现的。可以通过配置属性hystrix.command.default.execution.isolation.semaphore.maxConcurrentRequests来设置允许的最大并发请求数量。如果超过最大限制数,则会直接抛出HystrixRuntimeException异常。 综上所述,Hystrix提供了线程隔离和信号量隔离两种限流算法,可以根据具体场景选择适合的算法来进行限流处理。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [Hystrix 限流、超时、熔断和降级](https://blog.csdn.net/zsh2050/article/details/114878025)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

nier6088

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值