嘀嘀嘀,国庆第一天工作群就反应某电视业务超时了,超时时间在10点到10点10分左右,刚好是某个业务的自动续费时间,难道是并发太高把系统搞挂了?那个业务并发也不算太高,但是因为要调腾讯接口,腾讯要过3 4秒钟才返回,我一开始是怀疑httpClient的线程占满了,其他线程都在等待。top命令一看,那段时间确实cpu占用比较高。我们采取的第一个办法是多部署两台备用的服务器,两台变4台。
第二天,看了系统超时订单变少了,但是还有一部分订单超时,瓶颈还是没有消失,看来还是要详细分析一下问题到底出现在哪里。现在的情况是并发太高导致的,一定是某个地方卡住了,我的想法是httpClient、数据库、系统线程、tomcat线程这四个方面着手。后面我把出问题时间段的系统线程用jstack打印出来,发现好多线程都卡在线程池等待那里了,后面我加大c3p0线程池最大连接数量,100改成200,问题解决。
通过这个事情我们可以看到,某个业务卡住的话就很容易影响整个系统业务流程,所以还是要注意把系统峰值调大一点,还有要做成微服务架构,分而治之,解耦。
标签:10,处理过程,事故,系统,并发,国庆,线程,太高,超时 From: https://www.cnblogs.com/bbibbi/p/16768372.html