引子 前段时间我们的服务由于一台交换机网络出现故障,导致数据库连接不上,但是在数据库的连接超时参数设置不合理,connect timeout设置的过长,导致接口耗时增加.DB连接超时后线程未正常结束,上游请求又持续进来,最终耗光了Java线程,JVM进入持续GC状态,无法恢复,直到手工重启才恢复服务. 于是在服务的保护方面新增了两个措施,第一,调小服务端workThread的最大线程数.第二,在Server端设置Accept后Socket的readTimeout时间,当Socket调用read方…