前言
之前线上突然出现了异常的服务之间的调用被决绝,排查问题发现是因为,请求链路中有一个服务请求器restteamplate 并发没有加上,默认是4(两个节点),导致restteamplate 线程池很块被占满,最终导致tocmat线程池也没有可用资源,后续的请求直接被拒绝。所以改了之后想要查看tomcat 的线程池的情况。
springboot 1.x
@Autowired
ServletWebServerApplicationContext applicationContext;
TomcatServletWebServerFactory tomcatServletWebServerFactory=applicationContext.getBean(TomcatServletWebServerFactory.class);
String tomcatLog = (((TomcatWebServer)(tomcatServletWebServerFactory.getWebServer())).getTomcat().getConnector()).getProtocolHandler().getExecutor().toString();
springboot 2.x
@Autowired
ServletWebServerApplicationContext applicationContext;
String tomcatLog = ((TomcatWebServer) applicationContext.getWebServer()).getTomcat().getConnector().getProtocolHandler().getExecutor().toString();