Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 弹簧集成节流_Java_Spring_Spring Integration - Fatal编程技术网

Java 弹簧集成节流

Java 弹簧集成节流,java,spring,spring-integration,Java,Spring,Spring Integration,有人知道spring集成框架中是否已经有一个组件来处理节流吗 从本质上说,我所寻找的是类似的东西: import com.google.common.util.concurrent.RateLimiter; import java.util.Timer; import java.util.TimerTask; class Throttler extends TimerTask{ final RateLimiter rateLimiter; Timer timer; Long rat

有人知道spring集成框架中是否已经有一个组件来处理节流吗

从本质上说,我所寻找的是类似的东西:

import com.google.common.util.concurrent.RateLimiter;
import java.util.Timer;
import java.util.TimerTask;

class Throttler extends TimerTask{
  final RateLimiter rateLimiter;
  Timer timer;
  Long rate;
  Long dailyLimit;
  Long dailyCount;
  Long hourlyLimit;
  Long hourlyCount;
  Long resetTime;

  public Throtteler(){
    rateLimiter = RateLimiter.create(rate);
    timer = new Timer();
    timer.schedule(this, 60000);
  }

  public void run() {
    synchronize(this){
        hourlyCount = 0;
        resetTime = System.currentTimeMiilis();
        //if midnight reset daily counter
    }
  }

  public boolean throttled(Object obj){
    rateLimiter.acquire();
    if(hourlyCount < hourlyLimit && dailyCount < dailyLimit){
        hourlyCount++;
    }else{
        audit();
        // evaluate rules for throttled message
        // queue for hourly throttle?
        // return error for daily throttle?
    }
  }
}
import com.google.common.util.concurrent.RateLimiter;
导入java.util.Timer;
导入java.util.TimerTask;
类节流器扩展TimerTask{
最终费率限制器费率限制器;
定时器;
长期利率;
每日长限;
龙日山;
长小时极限;
长小时计数;
时间长;
公共投票者(){
rateLimiter=rateLimiter.create(速率);
定时器=新定时器();
时间表(本,60000);
}
公开募捐{
同步(此){
小时计数=0;
resetTime=System.currentTimeMiilis();
//如果午夜重置每日计数器
}
}
公共布尔值已限制(对象obj){
rateLimiter.acquire();
if(hourlyCount

速率限制器将限制每秒事务,每日和每小时事务由此对象跟踪,并且此对象保存在使用我的服务的每个租户的持久缓存中。

Google search:几乎,但不是。我没有寻找并发限制,这是我在每次Google搜索中发现的。并发性不同于多租户,多租户是我想要的。此外,费率限制器确实提供小时费率,这很有用,但仅限于小时费率。最后,它不是spring集成代码库的一部分。我正在寻找一个节流器的“Spring Integration”实现,如果Spring Integration中没有节流器,那么我将编写自己的节流器。老实说,我不知道你的意思,所以如果你提出一个JIRA问题()并在那里分享更多信息,那将是一件好事。最终,您将能够为框架提供最终解决方案。谢谢