java中如何限制时间段内某方法的调用次数?
项目中甲方领导担心对某系统某个接口的调用次数过多,导致系统宕掉,希望在本项目中约束某个时间段内调用接口的次数,比如每分钟不能超过100次。请问各位大牛有什么思路?
补充:接口是使用HTTP方式,向某个其他应用提供的地址POST数据,在自己的应用中进行限制,比如每分钟100次以内。
给力啊老湿
12 years, 3 months ago
Answers
使用Proxy模式
例如需要限制方法:
通用限制调用/分钟类:
abstract class LimitInvokingInMinute{
public LimitInvokingInMinute(int limit){
this.limit=limit;
}
int limit;
void execute(){
//TODO:限制访问次数/每分钟逻辑
invoking();
}
abstract void invoking();
}
针对方法是用:
LimitInvokingInMinute limitInvoking=new LimitInvokingInMinute(){
public void invoking(){
play();//调用被限制方法
}
}
使用的话仅需要:
即可
eelmon
answered 12 years, 2 months ago