使用tomcat做java中间件
tomcat是一个老牌的中间件了,从我从业到现在时不时都会遇到它,方便、灵活、性能一般是我对它的使用经验总结。
配置
注意 : tomcat 7 和 6 有很大差别,server.xml catalina.sh 配置文件不能通用
设置tomcat7 使用jdk1.7 export JAVA_HOME=/usr/local/java/
/usr/local/tomcat1/conf/server.xml <Connector port="8080" maxHttpHeaderSize="8192" maxThreads="1000" minSpareThreads="25" maxSpareThreads="200" enableLookups="false" redirectPort="8443" acceptCount="1000" connectionTimeout="20000" disableUploadTimeout="true" URIEncoding="UTF-8" useBodyEncodingForURI="true"/>
maxThreads="150" 表示最多同时处理150个连接
minSpareThreads="25" 表示即使没有人使用也开这么多空线程等待
maxSpareThreads="75" 表示如果最多可以空75个线程,例如某时刻有80人访问,之后没有人访问了,则tomcat不会保留80个空线程,而是关闭5个空的
acceptCount="100" 当同时连接的人数达到maxThreads时,还可以接收排队的连接,超过这个连接的则直接返回拒绝连接
# StartServers:启动时服务器启动的进程数
# MinSpareServers:保有的备用进程的最小数目
# MaxSpareServers:保有的备用进程的最大数目
# MaxClients:服务器允许启动的最大进程数
# MaxRequestsPerChild:一个服务进程允许的最大请求数
每类日志的级别分为如下 7 种: SEVERE (highest value) > WARNING > INFO > CONFIG > FINE > FINER > FINEST (lowest value) 最后 </Host> 上增加 <Context path="/download" reloadable="false" docBase="/home/local/tomcat+apache/tomcat1/webapps/download" /> ========================================================================== 普通文件【tar】 下载直接全目录 文本文件 主页做一个超连接 <a href="http://localhost/download/ty">ty</a>
windows 修改 tomcat的名字
catalina.bat :doStart shift if not "%OS%" == "Windows_NT" goto noTitle if "%TITLE%" == "" set TITLE=Tomcat8080 set _EXECJAVA=start "%TITLE%" %_RUNJAVA% goto gotTitle
日志级别的设定方法
修改 conf/logging.properties 中的内容,设定某类日志的级别
示例:
设置 catalina 日志的级别为: FINE 1catalina.org.apache.juli.FileHandler.level = FINE
管理
导出java堆栈
jstack <pid> kill -3 <pid> java 堆栈状态解析 http://blog.csdn.net/rachel_luo/article/details/8920596
在Tomcat中,我们知道%catalina_home%\work是存放缓存文件的地方
统计TCP连接状态
netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
堆栈内存分配
CATALINA_OPTS="-Xms1024m -Xmx1024m" JAVA_OPTS="-Xms1024m -Xmx1024m"
问题报错:
LifecycleException: No UserDatabase component found under key UserDatabase server.xml文件出错了: <Resource name="UserDatabase" auth="Container" type="org.apache.catalina.UserDatabase" description="User database that can be updated and saved" factory="org.apache.catalina.users.MemoryUserDatabaseFactory" pathname="conf/tomcat-users.xml" /> athname="conf/tomcat-users.xml" />
conf/tomcat-users.xml 或者出现了问题,找一个正常的比较一下就可以了