接口被大量访问后,数据库请求没反应的问题

最近网站被黑客攻击,一个获取验证码的接口被大量的请求(大概1天有几十万次的请求),
这个获取验证码的接口做的事情是生成一个随机数放到session里,
服务器运行了大概1个月左右,所有涉及到访问数据库的请求都没有反应了(访问超时),
但其他没有访问数据库的请求(比如页面跳转)之类的请求都可以访问.
重启服务器后回复正常.
请问这个是什么原因导致的呢?难道是session把内存占满了,所以才无法访问数据库呢?
ps 服务器用的是tomcat7.0 ,项目架构用的是springmvc

应该是访问数据库的连接假死,(也就是说连接实际断开了,但是你的服务端数据库连接未诊断出断开),你应该先检查数据库连接最大超时时间设计,默认应该是很长的。其次是数据库连接心跳保持。

在前端,安装一个硬件防火墙

是不是数据库连接池参数没设好,导致数据库连接没释放

首先,大概1天有几十万次的请求也不多。访问数据库没有反应的问题,应该从数据库的访问查起。访问数据的日志什么的分析一下,仅凭上述的信息不能判断问题

这个跟DOS攻击是一个道理吗?访问引起的服务器停止响应把。

设置下 拦截 ,同一个 浏览器 页面 请求的 一个接口 时间间隔必须大于 1000ms 这样一天下来最多8W左右。

数据库死锁了,找到死锁的进程kill掉就可以了