主流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 比较,及性能分析的更多相关文章

  1. 【Tomcat】Tomcat性能分析

    一.预研任务介绍和预研目标 任务介绍: Apache Tomcat是目前较为流行的web服务器,以其技术先进.性能稳定著称,其次它还是一个免费开源的项目. Tomcat性能分析的意义在于能为日常工作中 ...

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

    Jetty 基本架构 Jetty目前的是一个比较被看好的 Servlet 引擎,它的架构比较简单,也是一个可扩展性和非常灵活的应用服务器.它有一个基本数据模型,这个数据模型就是 Handler(处理器 ...

  3. Jetty与Tomcat的区别 转

    Jetty与Tomcat的区别 由于没有研究过Tomcat,所以区别不好说,这里暂时就网上的一些言论和自己所了解到的一些总结下(摘自于许令波). Jetty 的架构从前面的分析可知,它的所有组件都是基 ...

  4. Jetty和Tomcat的使用及性能测试

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

  5. Jetty 与 Tomcat 的比较

    Tomcat 和 Jetty 都是作为一个 Servlet 引擎应用的比较广泛,可以将它们比作为中国与美国的关系,虽然 Jetty 正常成长为一个优秀的 Servlet 引擎,但是目前的 Tomcat ...

  6. Jetty与Tomcat综合比较

    Jetty基本架构 Jetty目前的是一个比较被看好的 Servlet 引擎,它的架构比较简单,也是一个可扩展性和非常灵活的应用服务器.它有一个基本数据模型,这个数据模型就是 Handler(处理器) ...

  7. 【jetty】Jetty与Tomcat的区别

    Jetty 的架构从前面的分析可知,它的所有组件都是基于 Handler 来实现,当然它也支持 JMX.但是主要的功能扩展都可以用 Handler 来实现.可以说 Jetty 是面向 Handler ...

  8. Jetty和tomcat的对比

    上周面试一个来自百度的员工,其中提到一个监控项目,使用jetty容器提供rest api服务,一直懵懂jetty /tomcat这些容器的区别,周末查了下,下面这个说的简单明了~ 转自:http:// ...

  9. jetty和tomcat启动项目

    首先jetty和tomcat区别,不全面说,只说我理解的.jetty架构比tomcat更为简单.jetty是基于Handler来实现的,易于拓展,因此更适合于同时处理且长时间保持连接:tomcat的架 ...

随机推荐

  1. 取消Win7任务栏窗口自动排序

    点击“开始”菜单,在“搜索程序和文件”框中输入“关闭自动窗口排列”,找到后打开,找到“防止将窗口移动到屏幕边缘时自动排列窗口”这一项,勾上后点击确定就可以了.

  2. 实现类似 QQ音乐网页版 的单页面总结

    最近需要对创业团队的网站进行改版,而我负责前端设计和实现. 下面是一些总结与体会: 当设计完成之前,我就跟和我配合的Java 后台说用iframe实现,结果说麻烦不肯,到最后突然对我说还是用ifram ...

  3. asp自动解析网页中的图片地址,并将其保存到本地服务器

    程序实现功能:自动将远程页面的文件中的图片下载到本地. 程序代码 <% '将本文保存为 save2local.asp '测试:save2local.asp?url=http://ent.sina ...

  4. 关于ios对rtsp格式的流媒体支持的一些官方说明

    ios明确不支持rtsp格式的流媒体,基于rtsp/rtp对通用性和防炎墙以及需要开新端口等额外影响稳定性和通用性的原因. 而对http流的视频支持是最好的.虽然有第三方的方式配合ffmpeg库,实现 ...

  5. python学习day4--python基础--购物小程序

    '''购物小程序:用户启动时先输入工资用户启动程序后打印商品列表允许用户选择购买商品允许用户不断购买各种商品购买时检测余额是否够,如果够直接扣款,否则打印余额不足允许用户主动退出程序,退出时打印已购商 ...

  6. Android之图片窗口和大小调节

    结构图: 基类: package ch.halcyon.squareprogressbar.example; import android.app.Activity; import android.a ...

  7. Android手机一键Root原理分析

    图/文 非虫 一直以来,刷机与Root是Android手机爱好者最热衷的事情.即使国行手机的用户也不惜冒着失去保修的风险对Root手机乐此不疲.就在前天晚上,一年一度的Google I/O大会拉开了帷 ...

  8. Spring使用总结

    一.基础JAR包 spring-beans.jar spring-context.jar spring-core.jar spring-expression.jar 二.XML的配置 1.一级结构 & ...

  9. 关于iOS9中配置App Transport Security(应用程序传输安全协议)

    在 在info.plist中,进行上面的配置就行了,注意的是,那个网址,你需要访问什么网址,就填写什么网址就行了. NSTemporaryExceptionAllowsInsecureHTTPLoad ...

  10. WINDOWS2008 设置FTP防火墙规则

    在防火墙入站规划这里,加上21.20两个端口. 然后重启ftp服务,cmd命令:net stop ftpsvc & net start ftpsvc(重启ftp服务) 一定要重启ftp服务,不 ...