Tomcat学习总结
来源:互联网 发布:dafa888信誉第一js 编辑:程序博客网 时间:2024/06/05 17:50
Tomcat学习总结
本篇主要介绍tomcat服务器的详细配置,请求处理流程,以及简单的优化方法:
- tomcat详细配置
- 请求处理流程
- 简单的优化方法
tomcat详细配置
server.xml的基本结构
<?xml version="1.0" encoding="UTF-8"?><Server> <Listener /> <GlobaNamingResources /> <Service> <Connector /> <Engine> <Logger /> <Realm /> <host> <Logger /> <Context /> </host> </Engine> </Service></Server>
配置示例
<Connector port="8080" minSpareThreads="5" maxSpareThread="75" enableLookups="false" redirectPort="8443" acceptCount="100" debug="0" connectionTimeout="20000" disableUploadTimeout="true" />
建立一个连接器用于监听8080端口,初始创建minSpareThreads(5)个线程等待客户请求,每个请求由一个线程负责。设定服务器可以同时响应的客户请求的最大数目为maxSpareThread(75),当现有线程已经达到最大值maxSpareThread(75)时,用户请求被排队等待处理,当队列中请求数量超过acceptCount(100)时,请求将不予处理。当用户请求的是https时,该请求被转发到端口8443。将enableLookups设置为false可以禁用DNS查询,web应用中调用request.getRemoteHost方法将返回客户IP。connectionTimeout定义建立连接超时。
请求处理流程
举例说明Tomcat处理客户请求的流程:
假设来自客户的请求为 http://localhost:8080/test/index.jsp
- 侦听8080端口的Http/1.1 Connector获得该请求。
- Connector将请求交给Engine,并等待Engine回应。
- Engine将请求与其所拥有的所有虚拟主机匹配
- Engine匹配到localhost对应的虚拟主机host(匹配不到交给默认host)
- host获取请求/test/index.jsp匹配其所有的Context
- host匹配到/test的Context(匹配不到交给path为”“的Context处理)
- Context匹配到对应的Servlet,构造HttpServletRequest和HttpServletResponse对象,作为JspServlet的doGet和doPost方法的参数传入。
- Context将执行后的HttpServletResponse对象返回host
- host将HttpServletResponse对象返回Engine
- Engine将HttpServletResponse对象返回Connector
- Connector将HttpServletResponse对象返回客户端
简单的优化方法
1. 扩大JVM内存
在catalina.bat中适当位置加入 set JAVA_OPTS=-Xms256M -Xmx512M
-Xms 初始化JVM内存, -Xmx最大内存(设置过小会导致内存溢出)
2. 增加处理线程
在server.xml中配置Connector属性,增加minSpareThreads,maxSpareThreads,acceptCount,maxThreads,maxProcessors,minProcessors等来合理配置服务器用于处理请求的线程数量。
3. 关闭DNS查询
在server.xml中配置Connector属性,增加enableLookups=”false”,可禁用DNS查询。
4. 启用gzip压缩
在server.xml中配置Connector属性,增加
compression=”on”
compressionMinSize=”2048”
compressableMimeType=”text/html,text/xml,text/javascript,text/css,text/plain”
- Tomcat学习总结1
- Tomcat学习总结1
- Tomcat学习总结
- Tomcat学习总结
- Tomcat学习总结
- Tomcat学习总结
- tomcat 学习总结
- Tomcat学习总结1
- Tomcat学习总结1
- Tomcat学习总结
- Tomcat架构学习总结
- [学习笔记]Tomcat数据源总结
- tomcat 内存配置学习总结
- Apache和Tomcat整合学习总结
- Tomcat 初次学习的一些总结
- JavaWeb学习总结——Tomcat服务器
- Tomcat学习总结(1)——Tomcat入门教程
- Tomcat学习总结(2)——Tomcat使用详解
- static_cast,reinterpret_cast及C的强制类型转换
- UserCF算法 - 改进用户相似度计算
- 架构设计:负载均衡层设计方案(1)——负载场景和解决方式
- 找工作节奏和准备
- SVN的使用(Android Studio)
- Tomcat学习总结
- 负数的带符号和不带符号的右移运算
- 快速排序基本操作的优化(完整代码)
- Linux进程间通信(IPC)编程实践(三) 详解System V消息队列(1)
- 基于gulp+webpack的"约定大于配置"的构建方案探讨
- 欢迎使用CSDN-markdown编辑器
- IE6 中 window.open() 函数的超级大坑
- flexbox Flex 布局教程
- Sitemesh 3 的使用及配置