背景介绍
Tomcat
Tomcat是Apache鼎力支持的Java Web应用服务器,由于它优秀的稳定性以及丰富的文档资料,广泛的使用人群,从而在开源领域受到最广泛的青睐。
Resin
Resin也仅仅是一个Servlet容器,然而由于它优秀的运行速度,使得它在轻量级JavaWeb领域备受喜爱,特别是在互联网Web服务领域,众多知名公司都采用其作为他们的JavaWeb应用服务器,譬如163、ku6等。
Jetty
Jetty目前的是一个比较被看好的Servlet引擎,它的架构比较简单,也是一个可扩展性和非常灵活的应用服务器。它有一个基本数据模型,这个数据模型就是Handler(处理器),所有可以被扩展的组件都可以作为一个Handler,添加到Server中,Jetty就是帮你管理这些Handler。Jetty中另外一个比不可少的组件是Connector,它负责接受客户端的连接请求,并将请求分配给一个处理队列去执行。
Jetty和Tomcat为目前全球范围内最著名的两款开源的webserver/servlet容器。由于它们的实现都遵循Java Servlet规范,一个Java Web应用部署于两款容器的任意一个皆可。但选择哪个更优?也许这得看场景。
知识剖析
Jetty和Tomcat
1)Jetty更轻量级。这是相对Tomcat而言的。
由于Tomcat除了遵循JavaServlet规范之外,自身还扩展了大量JEE特性以满足企业级应用的需求,所以Tomcat是较重量级的,而且配置较Jetty亦复杂许多。但对于大量普通互联网应用而言,并不需要用到Tomcat其他高级特性,所以在这种情况下,使用Tomcat是很浪费资源的。这种劣势放在分布式环境下,更是明显。换成Jetty,每个应用服务器省下那几兆内存,对于大的分布式环境则是节省大量资源。而且,Jetty的轻量级也使其在处理高并发细粒度请求的场景下显得更快速高效。
2)Jetty更灵活,体现在其可插拔性和可扩展性,更易于开发者对Jetty本身进行二次开发,定制一个适合自身需求的WebServer。相比之下,重量级的Tomcat原本便支持过多特性,要对其瘦身的成本远大于丰富Jetty的成本。用自己的理解,即增肥容易减肥难。
3)然而,当支持大规模企业级应用时,Jetty也许便需要扩展,在这场景下Tomcat便是更优的。
总结:Jetty更满足公有云的分布式环境的需求,而Tomcat更符合企业级环境。
Resin和tomcat的比较
Resin也是全免费的,从站点下载的就是完整版本。相对于tomcat,后者更象是一个正在研究的项目。目前resin可以支持sun的j2ee,而tomcat不能直接支持,而j2ee是基于java服务器端大系统的基础。Resin3之后已经不在是一个简单的jsp容器,并且支持ejb,jta等企业功能。目前resin4 (2010年后已经比较稳定)性能更是优秀。并且已经支持servlet
3.0标准.pro版本是收费版本,支持负载均衡和文件缓存。普通版本独立作为web服务器性能就要差一些,可以使用apache+resin的方案借助apache的缓存功能提高性能,但负载均衡就是普通版不能比的。CAUCHO公司还为resin添加了PHP解析执行功能,能够运行php程序。但相对php的原生版本还是有一定差距。
常见问题和解决方案
web容器的配置
IDE插件的设置和本地安装脚本启动
扩展思考
各个web容器的选择
参考文献
http://www.cnblogs.com/crazyacking/p/5734849.html Jetty与Tomcat孰强孰弱
http://www.open-open.com/lib/view/open1322622094390.html Jetty和Tomcat的选择
------------------------------------------------------------------------------------------------------------------------
“我们相信人人都可以成为一个工程师,现在开始,找个师兄,带你入门,掌控自己学习的节奏,学习的路上不再迷茫”。
这里是技能树.IT修真院,成千上万的师兄在这里找到了自己的学习路线,学习透明化,成长可见化,师兄1对1免费指导。快来与我一起学习吧 !http://www.jnshu.com/login/1/11605661