tomcat服务器详解(一)

tomcat官网:软件包下载:http://tomcat.apache.org/download-80.cgi

tomcat是一个免费,开源的web应用服务器,也可处理静态页面,但是 效果不是很理想。

Tomcat一般是作为一个Servlet和JSP容器,单独运行在后端,需要与nginx或apache结合使用。

主要是用来处理java程序。

web容器:

商业实现:WebSphere, WebLogic,  OC4J,  Glassfish, Geronimo, JBoss, JOnAS.

开源实现: Tomcat,jetty,resion

tomcat工作原理:

有三种工作模式:

Bio :   默认工作模式,阻塞式I/O操作,性能较低。

Nio :  非阻塞式I/O操作,并发处理性能好。

Apr(apache可移植运行库) :  首选工作模式,主要是为上层的应用程序提供一个可以跨越的多操作系统平台使用的底层支持接口库。

tomcat利用基于Apr库tomcat-native来实现操作系统级别,提供一种优化技术和非阻塞式I/O操作,提高并发处理能力,不过,需要安装apr和tomcat-native库。

工作模式原理涉及到了网络I/O模型:

大概有以下几种:

阻塞I/O模型,非阻塞I/O模型,I/O复用模型,异步I/O模型,因理论较多,文字比较难理解,在此,不做详细说明。

java性能问题主要来自JVM虚拟机, 需要了解一下以下概念:

(1) JVM内存分为年轻代,老年代,永久代。

年轻代分为Eden和Survivor区,Survivor区由FromSpace和ToSpace组成。

(2) 堆内存=年轻代 + 老年代,  非堆内存 = 永久代。

堆内存作用: 存放对象,垃圾收集器,就是收集这些对象,然后根据GC算法回收。

非堆内存作用: JVM本身使用,存放一些类,方法,常量,属性等。

年轻代: 对象放到Eden区,Eden区满时,经过GC算法,存活的对象放到FromSpace中。然后被复制到ToSpace区,最终存活的对象会被复制到老年代。

老年代: 老年代空间不足时,JVM会对老年代进行垃圾回收(full  GC ),如果GC后,无法存放年轻代复制过来的对象,就会出现内存不足的现象。

永久代 : 也称为方法区,存放静态类型数据,比如类,方法,属性等。

垃圾回收算法(GC) :

标记--清除 : 先标记回收的对象,再回收被标记的对象。内存碎片较多,只能再次GC。

复制  :  内存容量分为两块,每次只使用一块,每次都只是对半个内存区回收,简单高效。

缺点是: 需要两倍的内存空间。

标记---整理 :先标记可回收的对象,再将存活的对象都向一端移动,然后清理掉边界外的内存。避免了前两者出现的问题。

年轻代,老年代会采用不同的GC算法。

垃圾收集器:

(1)  串行收集器: 单线程,收集时,需暂停应用的工作进程。

(2)  并行收集器: 多条垃圾收集线程并行工作,在多核CPU下效率更高,应用线程仍然处于

等待状态。

(3)  CMS收集器: 缩短暂停应用时间, 基于标记--清除算法实现,分为四步:

初始标记和并发标记  :  需要暂停应用线程。标记关联对象,标记可回收对象。

重新标记 : 修正导致标记发生变动的对象的标记记录。

并发清除 与并发标记过程: 收集器线程和用户线程一起工作,CMS收集器内存回收和用户是并发执行的,减少暂停时间。

(4) G1收集器 :  划分独立区域,预测暂停时间,工作过程分为4步:

初始标记:标记关联对象。

并发标记: 标记存活对象,可与应用线程并发执行。

最终标记 :  与重新标记一样。

筛选回收 :  对各个回收价值和成本进行排序,根据用户所期望的GC暂停时间来执行回收。

时间: 2024-11-05 17:18:22

tomcat服务器详解(一)的相关文章

Linux下安装MyEclipse和Tomcat服务器详解,以及我安装过程中所出现的问题以及解决办法,并实现一个web小程序

1.首先,先要去MyEclipse和Tomcat的官网去下载Linux版的压缩文件,而MyEclipse的中文官网是需要登录并有可能要付钱,大家可以去网上下载,还有就是Tomcat的linux版,这个直接上官网就可以下载了,下载后我还是通通把它们放在我E盘下的as目录底下,如果大家还没配置好jdk,即Java环境的话,可看我这篇文章:http://blog.csdn.net/u012561176/article/details/45119047 这里我就直接进行操作了! 我E盘下的as文件夹

tomcat服务器详解

1 Tomcat概述 Tomcat服务器由Apache提供,开源免费.由于Sun和其他公司参与到了Tomcat的开发中,所以最新的JSP/Servlet规范总是能在Tomcat中体现出来.当前最新版本是Tomcat8,我们课程中使用Tomcat7.Tomcat7支持Servlet3.0,而Tomcat6只支持Servlet2.5! 2安装.启动.配置Tomcat 下载Tomcat可以到http://tomcat.apache.org下载. Tomcat分为安装版和解压版: ?安装版:一台电脑上只

Tomcat配置详解

一.Tomcat定义 Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选.对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache 服务器,可利用它响应对HTML页面的访问请求.实际上Tomcat 部分是Apache 服务器的扩展,但它是独立运行的,所以当你运行tomcat 时,它实际上作为一个与Apache 独立的进程单独运行的 java基础 Java体系结构包括四

Tomcat原理详解

Tomcat原理详解 Tomcat是一个JSP/Servlet容器.其作为Servlet容器,有三种工作模式:独立的Servlet容器.进程内的Servlet容器和进程外的Servlet容器. Tomcat目录: tomcat |---bin:存放启动和关闭tomcat脚本 |---conf:存放不同的配置文件(server.xml和web.xml): |---doc:存放Tomcat文档: |---lib/japser/common:存放Tomcat运行需要的库文件(JARS): |---lo

Tomcat基础详解

Tomcat基础详解 组件原理图如下: 任何tomcat实例就是一个server,而一个server内部要想能够解析jsp页面转义编译serlet程序,要靠其引擎来实现 而引擎才是真正意义上执行jsp代码的容器,都是tomcat用类来描述这些组件的 同时,为了接受用户的请求,需要基于connector组件,所谓监听的套接字的程序,能够接手用户的请求,被称为连接器 一个server内部可以完全运行N个引擎,无非就是运行多个虚拟机而已 war包的概念 放在网页目录可以直接访问,而部署的时候可以自动将

TOMCAT原理详解及请求过程(转)

https://www.cnblogs.com/hggen/p/6264475.html TOMCAT原理详解及请求过程 Tomcat: Tomcat是一个JSP/Servlet容器.其作为Servlet容器,有三种工作模式:独立的Servlet容器.进程内的Servlet容器和进程外的Servlet容器. Tomcat目录: tomcat |---bin:存放启动和关闭tomcat脚本 |---conf:存放不同的配置文件(server.xml和web.xml): |---doc:存放Tomc

【转】Linux 下搭建Postfix邮件服务器详解:

在我自己的服务器上面搭建了邮件服务器,为的是接下来写shell脚本进行报警监控.当服务器发生意外,可以及时发送邮件服务器到邮箱. 看了两个教程,按照两个教程来搭建的,感谢原作. Linux 下搭建Postfix邮件服务器详解: 1.首先关闭sendmail服务 service sendmail stop 2.chkconfig sendmail off(关闭开机自启动) 3.修改DNS正解文件,使DNS能够解析邮箱服务 添加下面两行 mail.zhubf.com. IN A           

U-Mail邮件服务器详解邮件延时

在快节奏的信息社会,我们要求邮件"又好又快"的传送,即保证高安全性之外,还需要及时传 输.但是由于国际互联网环境的复杂特殊性及企业邮件系统自身原因,邮件延迟送达的现象很常见,这往往给企业业务拓展带来不利影响,毕竟商机转瞬即逝,谁能 抢先一步抓住,谁就能独占鳌头守住财富.那么,邮件延迟是什么原因呢?有没有好的解决方案?据统计,目前对于这个问题针对措施做得最好的是U-Mail邮 件服务器,小编特意请来U-Mail何工程师详解一番. 问:邮件延时对于企业,尤其是外贸类公司来说,既常见,同时负

nginx高性能web服务器详解(1)--安装nginx

1. 下载 本次使用nginx-0.1.2.3 版本,下载地址 http://nginx.org/en/download.html  新发布版本 http://nginx.org/download  历史版本 2.上传到linux服务器 sz -bey nginx-0.1.2.3.tar.gz 3.解压 3.1 建立目录  mkdir nginx_123 3.2 解压 tar -zxvf nginx-0.1.2.3.tar.gz ./nginx_123/ 4.配置编译环境 nginx源代码的编译