前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >tomcat基础小结

tomcat基础小结

作者头像
WindCoder
发布2018-09-19 17:47:21
3820
发布2018-09-19 17:47:21
举报
文章被收录于专栏:WindCoderWindCoder

目录结构

bin:可执行文件,包含启动脚本 conf:配置文件 lib:tomcat的依赖库 logs:日志 temp:临时文件 webapp:默认的应用部署目录 work:供web应用使用,tomcat的工作目录,放置tomcat运行中产生的一些文件,如,跑jsp时,翻译出来的servlet一般在这里面。 LICENSE:许可证文件 NOTICE、RELEASE-NOTES、RUNNING.txt:

JVM启动参数配置 环境变量JAVA_OPTS -server-Xms512m -Xmx521m 最小堆内存,最大堆内存,一般可以一样大 如:

代码语言:javascript
复制
//在本发起有效
export JAVA_OPTS = "-server-Xms2048m -Xmx2048m"
//设置一直有效
cat ~/.bashrc

//启动-运行bin目录下的对应启动脚本
./bin/startup.sh

配置文件

重要配置文件 server.xml 结构

enter description here
enter description here
enter description here
enter description here

Server 最顶层

Service 一个Server可配置多个Service

Connector 一个Service可以有多个Connector 用来接收用户请求。

Engine 一个Service有一个Engine 用于处理Connect接收到的请求,包括平时写的代码也是由其执行。

Host 一个Engine可以有多个Host Host是虚拟主机的概念,即配置域名和ip。

Context 一个Host可有一个或多个Context。 一个Context即一个web应用。

对应组件的实现

Connector

1、Coyote组件,实现了许多不同的Connector 默认BIO Connector 使用传统的 阻塞式的bio的操作的方式,实现方式也是传统的java I/O的实现。 客户端一个链接过来,服务端分配一个线程处理,若请求比较大,时间很久请求头没发完,对应的处理线程就只能一直等待。 2、Container 容器具体执行web应用代码逻辑的部分。 具体实现:Catalina tomcat中实现容器的组件,最终都是由Catalina中的代码执行的。

请求处理流程
enter description here
enter description here

java_tomcat_request01

参数配置

Connector

port address 监听网络请求时到哪个地址,一般会有多个ip,若不配置,会在所有地址上监听。 protocol 协议,默认htpp1.1,调优可能会调整更高的。 connectionTimeout 多长时间不发请求则断开,即连接超时时间 acceptCount 排队队列最大值。超过后,超出的会被拒绝处理,即不再处理后面的。 maxConnections 最大连接数。超过后值会接收但不处理。设置-1表示不设置连接数。 minSpareThreads 最小空闲线程数 maxThreads 最大线程数

Executor 线程池 事先创建一定数目的线程,当有任务时,从池中取出用完后再放回池中。 minSpareThreads 最小空闲线程数 maxThreads 最大线程数

当Connector同时配置依赖Executor和minSpareThreads/maxThreads,优先Executor。

代码语言:javascript
复制
    <Executor name="tomcatThreadPool" namePrefix="catalina-exec-"
        maxThreads="150" minSpareThreads="4"/>
    <Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
			   executor="tomcatThreadPool"
               redirectPort="8443" />

Tomcat日志

作用

Tomca运行情况获知 调试利器

分类

系统运行日志:运行信息与状态 访问日志:记录请求访问 应用日志:应用程序打印日志 访问日志: 配置文件 server.xml

代码语言:javascript
复制
        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
               prefix="localhost_access_log" suffix=".txt"
               pattern="%h %l %u %t &quot;%r&quot; %s %b" />

directory :日志目录 prefix:日志名前缀 suffix:日志名后缀 pattern:日志格式

请求方式(get/post等):method: %m 客户端ip:client ip:%a 请求时刻:time:%t 用户响应码: status:%s 服务端下发字节数: byteSent: %b User-Agent:%{User-Agent}i

日志切割 fileDateFormat="yyyy-MM-dd." --时戳格式 rotatable = "true" --是否开启日志滚动

优化相关

Tomcat学习总结(3)——Tomcat优化详细教程

闲谈Tomcat性能优化 如何优化tomcat配置(从内存、并发、缓存4个方面)优化

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017-09-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 目录结构
  • 配置文件
    • 对应组件的实现
      • Connector
  • 参数配置
    • Connector
      • Tomcat日志
        • 作用
        • 分类
      • 优化相关
      相关产品与服务
      容器服务
      腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档