说到前几天那个事儿,真是把我给折腾坏。你们知道的,我这人就喜欢倒腾点服务器啥的,结果那天我的 Tomcat 就突然给我撂挑子,直接宕机,把我给整懵。
先说说当时的情况
我正美滋滋地看着我的网站,突然就发现页面刷不出来,我还以为是网络问题,结果刷新好几次都没用,我这心里就咯噔一下,感觉不对劲。
排查问题开始
我立马就去看服务器的状态,这一看不要紧,Tomcat 进程直接没!我当时就想,这下可麻烦。
我先是重启一下 Tomcat,想着说不定重启一下就好。结果,好家伙,启动是启动,没过几分钟,又挂!这下我可不敢大意,得好好查查是咋回事。
我开始看 Tomcat 的日志,想从里面找找线索。翻好久,发现一条关键信息: "Cause: *.CannotGetJdbcConnectionException: Could not get JDBC Connection; nested exception is *"。
看到这个,我大概知道是数据库连接的问题。
然后就顺藤摸瓜
- 我先检查数据库,看看是不是数据库那边出问题。结果发现数据库运行得好好的,没啥毛病。
- 然后我又去看看 Tomcat 的配置,特别是数据库连接池那一块。这一看,果然发现问题,连接池的最大连接数设置得太大!
我服务器的配置也就那样,平时访问量也不大,结果我把连接池设置得那么大,这不就相当于让一个小孩去举一个大铁锤吗,肯定撑不住。
解决问题
找到问题就好办,我赶紧把连接池的最大连接数调小一些,改到一个比较合理的范围。改完之后,我重启 Tomcat,然后就一直盯着它,生怕它再给我出什么幺蛾子。
谢天谢地,这回 Tomcat 终于稳定下来,跑好几个小时也没再出问题。我这才松一口气,总算是把这个问题给解决。
总结一下
这回 Tomcat 宕机,主要还是因为我的配置没弄连接池设置得太大,导致服务器资源耗尽。这也给我提个醒,以后配置这些东西的时候,一定要根据实际情况来,不能想当然地乱设置。
这回的分享就到这里。希望我的这回经历能给大家提个醒,避免再犯同样的错误。记住,遇到问题不要慌,一步一步排查,总能找到解决办法的!