Jetty 与 Tomcat 比较,及性能分析

主流java的web容器,主要是Tomcat, jboss, jetty, resin。由于以前我们主要用的是jboss4.0.5,但jbosse用的servlet容器是tomcat5.5,所以只进行tomcat和 jetty的比较,两个谁好谁坏,适合你用,你才知道。resin就不说了,好像已经成为了history.

一、Tomcat

现在Tomcat版本已经是8.0了,在Tomcat6和7都增加了很多新的特性。

版本 特性

Tomcat7系列

Tomcat6系列

二、jetty

由于jetty出生不好,不像tomcat是在apache强大的基金下面成长,所以变化很多。现在归于eclipse基金组织下,官方文档没有 tomcat那么细和明确。现在Jetty的最新版本是8.0.4,在我们这期使用的是jetty7.2.0,这两个版本系列与jetty6区别比较大。详细的学习了解及性能,在以后的分享再给出。

三、比较
名称 上手度 性能 更新频率 扩展性
Tomcat 容易 从Tomcat6支持nio,性能优秀 普通 不好
Jetty 比较慢。灵活性同时带来一定的复杂度 默认是NIO,性能优秀

综上所述,其实我们选用jetty或者tomcat并不是因为jetty一定比tomcat好,而是因为什么手顺,用什么。

四、NIO和BIO对比

测试环境:

Tomcat: 7.0.22 JDK:1.6.0_11 系统:linux,就是我们的开发机 场景:访问一个简单的jsp页面,没有什么业务代码,纯测试及处理request的性能与并发。 总的说来,BIO下,较为稳定,而NIO波动较大。但在10240并发下,bio彻底玩完,而NIO依然坚挺。所以在大并发下,NIO是不二选择。

Tomcat的NIO和BIO配置及运行时截图

名称 配置 运行时
BIO
NIO

五、为什么要用jetty?

其实这篇分享,主要是想说明三点。

  1. 在web容器上,我们要与时俱进,不能只追求现在,在高并发下,我们要有相关的经验及应对措施。
  2. NIO要优于BIO,而jetty同时也是推荐用NIO
  3. jetty的灵活小巧,加载速度快,方便调试等都是促使我们去选择 tomcat公司很多不屑于用一样,其实tomcat还是很不错的。用tomcat支持并发2000的,也是经常干的事。之所以选择jetty,那原因就不多说了,jboss不给力而且又大,tomcat公司不支持,所以jetty就这样成为项目中的不二选择,当然他也是非常优秀的产品。 综上所述,在性能上tomcat与jetty差距并不大,可以说没有。只是jetty相对来说由于其灵活性,插件化,导致jetty某些场合(如虚拟机、嵌入式)更节约资源,当然对于我们现在的应用可以忽略这个因素。还是多关注一下我们的SQL语句和业务逻辑代码吧!
补充
3.1 Servlet3.0新特性
  1. 异步处理支持:有了该特性,Servlet 线程不再需要一直阻塞,直到业务处理完毕才能再输出响应,最后才结束该 Servlet 线程。在接收到请求之后,Servlet 线程可以将耗时的操作委派给另一个线程来完成,自己在不生成响应的情况下返回至容器。针对业务处理较耗时的情况,这将大大减少服务器资源的占用,并且提高并发处理速度。
  2. 新增的注解支持:该版本新增了若干注解,用于简化 Servlet、过滤器(Filter)和监听器(Listener)的声明,这使得 web.xml 部署描述文件从该版本开始不再是必选的了。
  3. 可插性支持:熟悉 Struts2 的开发者一定会对其通过插件的方式与包括 Spring 在内的各种常用框架的整合特性记忆犹新。将相应的插件封装成 JAR 包并放在类路径下,Struts2 运行时便能自动加载这些插件。现在 Servlet 3.0 提供了类似的特性,开发者可以通过插件的方式很方便的扩充已有 Web 应用的功能,而不需要修改原有的应用。

Jetty 与 Tomcat 比较,及性能分析,布布扣,bubuko.com

时间: 2024-10-12 20:52:26

Jetty 与 Tomcat 比较,及性能分析的相关文章

详解web容器 - Jetty与Tomcat孰强孰弱

本文引用http://www.cnblogs.com/crazyacking/p/5734849.html Jetty 基本架构 体系结构 启动过程 接受请求 基于 HTTP 协议工作 基于 AJP 工作 基于 NIO 方式工作 处理请求 与 Jboss 集成 与 Tomcat 的比较 架构比较 性能比较 特性比较 总结 Jetty 基本架构 Jetty目前的是一个比较被看好的 Servlet 引擎,它的架构比较简单,也是一个可扩展性和非常灵活的应用服务器.它有一个基本数据模型,这个数据模型就是

Jetty和Tomcat的使用及性能测试

一 测试目的 这次对Jetty和Tomcat进行性能测试,主要是为了给新版本WebPortal的开发选择合适的Java Web Server. 我们之前对老的Rest和新的TMMI都进行过性能测试,Rest有Akamai的缓存,性能基本 一 测试目的 这次对Jetty和Tomcat进行性能测试,主要是为了给新版本WebPortal的开发选择合适的Java Web Server. 我们之前对老的Rest和新的TMMI都进行过性能测试,Rest有Akamai的缓存,性能基本没有问题.但是WebPor

Jetty与Tomcat的区别

Jetty 的架构从前面的分析可知,它的所有组件都是基于 Handler 来实现,当然它也支持 JMX.但是主要的功能扩展都可以用 Handler 来实现.可以说 Jetty 是面向 Handler 的架构,就像 Spring 是面向 Bean 的架构,iBATIS 是面向 statement 一样,而 Tomcat 是以多级容器构建起来的,它们的架构设计必然都有一个“元神”,所有以这个“元神“构建的其它组件都是肉身. 从设计模板角度来看 Handler 的设计实际上就是一个责任链模式,接口类

Undertow和Jetty服务器配置详解与性能

undertow,jetty和tomcat可以说是javaweb项目当下最火的三款服务器,tomcat是apache下的一款重量级的服务器,不用多说历史悠久,经得起实践的考验.然而:当下微服务兴起,spring boot ,spring cloud 越来越热的情况下,选择一款轻量级而性能优越的服务器是必要的选择.spring boot 完美集成了tomcat,jetty和undertow,本文将通过对jetty和undertow服务器的分析以及测试,来比较两款服务器的性能如何. 值得一提的是je

Java 性能分析工具

如何利用 JConsole观察分析Java程序的运行,进行排错调优 http://jiajun.iteye.com/blog/810150 如何使用JVisualVM进行性能分析 http://jiajun.iteye.com/blog/1180230 全功能的Java剖析工具(profiler) http://www.blogjava.net/mrzhangshunli/archive/2007/08/27/140088.html http://www.cnblogs.com/jayzee/p

Jetty VS Tomcat

Tomcat 经过长时间的发展,它已经广泛的被市场接受和认可,尤其在企业级应用方面,Tomcat 仍然是第一选择.但是随着 Jetty 的发展,Jetty 的市场份 额也在不断提高. 1.架构 Jetty 比 Tomcat 更加简单.Jetty 的所有组件都是基于 Handler 来实现.可以说 Jetty 是面向 Handler 的架构,就像 Spring 是面向 Bean 的架构, iBATIS 是面向 statement 一样,而 Tomcat 是以多级容器构建起来的,它们的架构设计必然都

jetty和tomcat比较

两点,性能极佳,配置简单方便. 主要是设计思想的不同.Tomcat 主要是作为 JSP/Servlet 最新规范的参考实现而设计,属于学院派,但是显得庞大而杂乱.Tomcat 的性能很差,一般是作为 Http Server(如 Apache)的插件来用.Jetty 主要是作为企业级产品的嵌入式组件来设计的,可以非常方便地嵌入到其它产品中.而且 Jetty 是作为单独的 Http Server 来设计的,据 Jetty 开发人员的测试,Jetty 的性能几乎与 Apache 相当.Jetty 的体

Jetty 和 tomcat的比较

Jetty和tomcat的比较 相同点: 1.      Tomcat和Jetty都是一种Servlet引擎,他们都支持标准的servlet规范和JavaEE的规范. 不同点: 1.      架构比较 Jetty的架构比Tomcat的更为简单 Jetty的架构是基于Handler来实现的,主要的扩展功能都可以用Handler来实现,扩展简单. Tomcat的架构是基于容器设计的,进行扩展是需要了解Tomcat的整体设计结构,不易扩展. 2.      性能比较 Jetty和Tomcat性能方面

Jetty和tomcat的比较

相同点: 1.      Tomcat和Jetty都是一种Servlet引擎,他们都支持标准的servlet规范和JavaEE的规范. 不同点: 1.      架构比较 Jetty的架构比Tomcat的更为简单 Jetty的架构是基于Handler来实现的,主要的扩展功能都可以用Handler来实现,扩展简单. Tomcat的架构是基于容器设计的,进行扩展是需要了解Tomcat的整体设计结构,不易扩展. 2.      性能比较 Jetty和Tomcat性能方面差异不大 Jetty可以同时处理