如何在服务端限制请求间隔?

背景:客户端发送请求到服务端,服务端JavaEE平台,采用SpringMVC(单例模型)
业务:为安全考虑,此业务方法包裹在Synchroniz中
问题:我想如果客户端短时间大量发送请求的时候,直接通过判断是不是某线程占用期间,如果占用 用就直接返回信息给客户端(如:请求繁忙,请稍后重试...),请问一下,从代码角度可不可以实现?怎么实现?求大神^-^

阅读 4.5k
2 个回答

这个貌似是典型的队列应用场景?

你提示请求繁忙的体验还不如提示类似“系统稍加处理之后就会展现给你结果”这种方式更人性化?

如果有必要还可以在等待队列执行的过程中前段定时检测队列执行结果,模拟同步请求

atomicBoolean f = false;

if(f.get()) return 已经被占用了;

try{

f.set true;
啪啪啪

} finally{

f.set false;

}

题主是学生吧?分布式系统太没经验了,这个设计很渣。。。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题