数据库连接达到最大数
也是比较有意思的一天,今天我司系统基本上全炸了一个遍。最最最离谱的是我自己写的一个系统数据库出现了达到最大连接数,任何操作都是超时的情况。
一开始出现这个问题,我仔细的在思索是不是什么时候更新了代码导致出现BUG的,但是仔细一想除了部署了一个抓取邮件的和读取国外服务的好像并没有其他的迭代记录了。
我开始是怀疑是不是我做的定时抓取有问题,出现了死循环。我内心都在想不是吧不是吧,敲码多年居然还能出现这样的问题。
然后我就去把抓取邮件的服务和抓取国外服务器的服务都停了。
然后去数据库查询任务,去释放资源,然后发现还是在不停的进东西。见了鬼了是不是系统抽风了,这个是我当时唯一的想法。
最后解决方案是重启了服务,发现好像没事了。就不了了之。
客户半夜的时候告诉我为什么API调用了一百多次,然后就死掉了。一直超时。那个时候我都在想蒙混过关反正现在是没事了。然后承诺客户明天写一个批量的接口。
然后第二天早上,一看数据库,又又又死掉了。莫名其妙,虽然我知道是某个地方一直被访问资源,然后找到是按钮加载,原本以为是无关紧要,然后我服务又死掉了。
我没管继续重启服务器,重启大法好。然后去写批量请求API的接口,毕竟承诺客户的还是得做到的,写完赶紧发布。见了鬼由于业务问题,还用键值对存储泛型Key去遍历查询结果集。心塞。
然后我发布服务想起,这两天总是服务器出现问题,然后想着去查询一下iis的日志,人生第一次考虑去查询日志。结果万万没想到,我居然发现了客户请求了一万多次那个接口,导致崩掉了。
现在确认了问题,紧接着我就去关闭了这个接口,然后通知客户去用批量的接口。
导致出现问题还是这个接口没有做并发预案的处理,导致客户并发请求导致数据库一直请求数据,然后在写入日志文件然后确认是否拥有权限来着。导致数据库连接到最大数。
Get到了查看日志的好处,开心的像个憨批。
想起自己忽悠客户,由于出现恶意访问的情况所以暂时重启服务器暂停服务什么的。都是自己技术太菜,需要学习的还有很多。
有没有老哥有Redis结合业务场景的开源项目或者部分代码展示的,我想学习学习。

浙公网安备 33010602011771号