随笔分类 -  Middleware/Tomcat

摘要:目录 问题现场 线程死锁 vs 线程死循环 排查Java进程导致CPU持续高的方法 Tomcat的CPU占用高的原因总结 问题现场 测试环境tomcat进程占用CPU一直持续99%,但是通过jstack查看log,也没有任何线程死锁的情况。 此时通过$catalina_home/bin/shutdo 阅读全文
posted @ 2020-03-20 23:18 nuccch 阅读(5728) 评论(0) 推荐(0)
摘要:问题描述 通常,我们都会直接使用tomcat提供的脚本执行关闭操作,如下: 但是执行该关闭操作之后,有时候会发现tomcat进程依然存在: 这时我们就只能通过强制杀死进程的方式停止Tomcat了: 。 那么,为什么使用shutdown.sh无法正常停止Tomcat进程呢? 原因分析 停止Tomcat 阅读全文
posted @ 2018-05-17 19:03 nuccch 阅读(16766) 评论(0) 推荐(1)
摘要:前言 当应用配置文件发生变化时,无需重启tomcat,可以使tomcat重新加载应用。 场景 假设存在一个J2EE应用A,对应war文件名称为A.war,部署在tomcat的webapps目录下,即:CATALINA_HOME/webapps/A.war。 tomcat启动之后会将A.war解压,并 阅读全文
posted @ 2017-09-26 19:05 nuccch 阅读(2371) 评论(0) 推荐(0)
摘要:在谈到tomcat优化时,必然要说到apr库,这个库是C语言实现的,tomcat通过JNI方式使用该库可以大大提高性能。 tomcat在使用apr时需要安装apr,apr util和tomcat native。 1. 下载 apr和apr util需要单独下载:http://apr.apache.o 阅读全文
posted @ 2017-09-26 19:01 nuccch 阅读(1802) 评论(0) 推荐(0)
摘要:关于tomcat cluster的实现原理,详见:https://tomcat.apache.org/tomcat 7.0 doc/cluster howto.html How_it_Works。 在这里只是对在实际实际配置中遇到的问题做一个总结。 配置说明 通常,tomcat cluster配置都 阅读全文
posted @ 2017-08-29 14:43 nuccch 阅读(1297) 评论(0) 推荐(0)
摘要:在tomcat下,context元素有一个crossContext属性,如果配置为true,则可以实现在同一个tomcat下的多个web应用之间实现ServletContext对象访问。该属性主要用于跨应用访问数据。在实际项目中遇到一个奇葩需求:在同一个页面框架下嵌套了2套应用!!!app1和app 阅读全文
posted @ 2017-07-12 16:23 nuccch 阅读(10214) 评论(0) 推荐(0)
摘要:1. Tomcat Cluster官网:http://tomcat.apache.org/tomcat-7.0-doc/cluster-howto.htmlTomcat原生支持的集群方案,通过组播消息实现。 2. Hazelcast IMDG Plugins 开源版本插件https://github 阅读全文
posted @ 2017-06-23 20:53 nuccch 阅读(1779) 评论(0) 推荐(0)
摘要:业务场景:通常,我们会在会话级别存放一些参数,期望在session生命周期内,可以一直取得保存在session中的指定数据;而只要session过期或者失效,则需要执行重新登录等操作。但是!我们对于这样的场景会感到很疑惑:在session中保存对象值,正常重启Tomcat,再次访问应用,居然还可以继 阅读全文
posted @ 2017-06-23 20:27 nuccch 阅读(659) 评论(0) 推荐(0)
摘要:官网:http://tomcat.apache.org/tomcat-7.0-doc/class-loader-howto.htmlJava类加载与Tomcat类加载器层级关系对比 Java ClassLoader验证: Tomcat ClassLoader验证: 跟踪org.apache.cata 阅读全文
posted @ 2017-06-23 19:28 nuccch 阅读(1944) 评论(0) 推荐(0)
摘要:官网:http://tomcat.apache.org/tomcat-7.0-doc/monitoring.html Java应用程序的监控通过JMX实现,详见:https://docs.oracle.com/javase/tutorial/jmx/。 一. 监控配置对于Java Web应用程序而言 阅读全文
posted @ 2017-06-23 16:58 nuccch 阅读(855) 评论(0) 推荐(0)
摘要:Tomcat Cluster官网:https://tomcat.apache.org/tomcat-7.0-doc/cluster-howto.html(tomcat7.0) 场景: tomcat1 tomcat2 | | | nginx tomcat版本:7.0.59 1.后端应用为2台tomca 阅读全文
posted @ 2017-05-09 20:33 nuccch 阅读(861) 评论(0) 推荐(0)
摘要:版本:8.5.x官网:https://tomcat.apache.org/svn.html1. 下载源码,git镜像:https://github.com/apache/tomcat85 。2. 导入项目到eclipse:(1)假设源码目录为tomcat85(2)在eclipse中新建项目:New 阅读全文
posted @ 2017-05-01 21:18 nuccch 阅读(368) 评论(0) 推荐(0)
摘要:在server.xml中添加<Context>元素,配置如下: 在<Context>配置中包含如下信息:1. 配置docBase值为:docBase="app"或者docBase="app.war";2. path为空,表示app为tomcat默认应用;同时,将app.war部署在CATALINA_ 阅读全文
posted @ 2017-05-01 21:14 nuccch 阅读(21776) 评论(0) 推荐(2)
摘要:案例:在项目中通过Cookie方式临时存放检索条件,不小心在Cookie值中使用了特殊符号"@",导致在服务器端无法正确解析Cookie值。之所以说"不小心",根本原因是对于Cookie的理解不够深入。实际上在开发环境使用run-jetty-run插件进行调试时并未发现问题,经验证:在jetty下可 阅读全文
posted @ 2017-04-25 12:14 nuccch 阅读(3064) 评论(0) 推荐(0)
摘要:通常,在使用Spring MVC框架的应用程序中,为了解决中文参数乱码的问题,都会添加如下过滤器配置: 但是,在Tomcat下运行时,对于GET请求参数的处理和POST参数不同,会出现POST中文参数正常,但是GET请求中文参数乱码的情形。通过查看Tomcat相关源码得知,为了处理GET请求中的中文 阅读全文
posted @ 2017-04-24 12:21 nuccch 阅读(9528) 评论(0) 推荐(0)
摘要:1. 场景后端存在N个tomcat实例,前端通过nginx反向代理和负载均衡。 tomcat1 tomcatN | | | | | nginx2. 需求为了保护后端应用,tomcat实例只允许前端nginx服务器IP访问,其他任何地址的访问都被拒绝。 3. 实现编辑${TOMCAT_HOME}/co 阅读全文
posted @ 2017-04-21 12:53 nuccch 阅读(5727) 评论(0) 推荐(0)