本月
Tomcat 7.0.14版本正式发布,其最显著的一个新功能就是引入了
StuckThreadDetectionValve功能,该功能可以帮助分析和检查耗时的请求或潜在可能会出现请求线程阻塞等情况。
StuckThreadDetectionValve(阻塞线程检测
)功能是通过扩展
Tomcat的
Valve机制进行实现。下面是针对此块代码的实现主要源代码进行的分析,来探究一下该功能的实现原理。
下面是核心的代码片段,但从实现思路上还是比较好理解的,针对所有的
tomcat请求,该
valve都会拦截,并到当的执行的线程通过一个引入进行保存,记录开始时间。同时启动
MonitoredThread
线程对当前请求线程的运行时间进行检测,一旦出现超出设置的时候值,则会进行保存,这样可以就很容易的获取那些效率低下的请求线程情况。
整体类图如下:
以下是几个重要的全局属性:
stuckCount
可能为阻塞的线程数
threshold
阻塞线程判断的运行时间的依据,超过该时间上限,则将环境该线程为阻塞线程
activeThreads
当前正在运行中的线程
completedStuckThreadsQueue
已经执行完成的阻塞线程情况
invoke
方法代码如下:
把所有请求的线程都放置到
activeThreads Map
对象中,在执行完成后,进行清除。
接下来,复写
backgroundProcess方法
, 对线程的运行状态和时间进行检测,一旦有发现阻塞嫌疑,则进行记录。
至此实现原理已经介绍完成。完整的代码实现可以参见
Tomcat
7源码 下载地址
分享到:
相关推荐
包含tomcat7,tomcat8,tomcat9,解压、在eclipse配置好即可。
tomcat7_win64解压版tomcat7_win64解压版tomcat7_win64解压版
tomcat7源码下载tomcat7源码下载tomcat7源码下载tomcat7源码下载tomcat7源码下载tomcat7源码下载tomcat7源码下载tomcat7源码下载
linux服务器64位的tomcat7下载,本人正在使用这个tomcat服务器,亲测有效
绿色版tomcat 7 无需安装,将war包扔进webapp中直接启动就可以。
tomcat7免安装版点击上传资源即表示您确认该资源不违反资源分享的使用条款,并且您拥有该资源的所有版权或者上传资源的授权
针对tomcat7存在漏洞升级补丁,漏洞影响的tomcat7版本为Apache Tomcat 7.0.0 to 7.0.93
tomcat 7 最新版本 apache-tomcat-7.0.109
Tomcat初始化流程分析,Tomcat启动流程分析 Tomcat处理一次请求过程分析 servlet初始化流程
tomcat7(linux版本),亲试可以用。apache-tomcat-7.0.82.tar
对tomcat的gclog日志进行分析,进行可视化展示,可以查看一些配置参数,检查是否软件是否运行正常
内含tomcat7 tomcat8 tomcat9免安装版本;供需要的人下载。
apache-tomcat-7.0.25 tomcat7
用于java开发 tomcat 版本为:apache-tomcat-7.0.86
tomcat7 tomcat7 tomcat7 tomcat7 tomcat7 tomcat7 tomcat7
Tomcat7免安装版Tomcat7免安装版Tomcat7免安装版Tomcat7免安装版Tomcat7免安装版
solr+tomcat完成搜索功能,solr+tomcat完成搜索功能,solr+tomcat完成搜索功能
该资源为tomcat 7 8 8.5 9 四个版本,适配于eclipse 用于开发javaweb
tomcat工具包,包含tomcat7和tomcat8两个版本
tomcat-redis-session-manager-1.2-tomcat-7-java-7tomcat-redis-session-manager-1.2-tomcat-7-java-7tomcat-redis-session-manager-1.2-tomcat-7-java-7tomcat-redis-session-manager-1.2-tomcat-7-java-7tomcat-...