Jetty和Tomcat的区别

Jetty和Tomcat是目前全球范围内最著名的两款开源的webserver/servlet容器。

Jetty 是一个开源的servlet容器,它为基于Java的web容器,例如JSP和servlet提供运行环境。Jetty是使用Java语言编写的,它的API以一组JAR包的形式发布。开发人员可以将Jetty容器实例化成一个对象,可以迅速为一些独立运行(stand-alone)的Java应用提供网络和web连接。

Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。由于有了Sun 的参与和支持,最新的Servlet 和JSP 规范总是能在Tomcat 中得到体现,Tomcat 5支持最新的Servlet 2.4 和JSP 2.0 规范。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为比较流行的Web 应用服务器。

相同点:

1、Tomcat和Jetty都是一种servlet引擎,他们都支持标准的servlet规范和JavaEE的规范。

不同点:

1、架构比较

(1)Jetty的架构比Tomcat简单,更轻量级,更灵活。

(2)Jetty的架构是基于handler来实现的,主要的扩展功能都可以使用handler来实现,扩展简单,可插拔性强,易于开发者对Jetty本身进行二次开发,定制一个适合自身需求的Web Server。

(3)Tomcat的架构是基于容器设计的,进行扩展是需要了解Tomcat的整体设计结构,不易扩展,重量级的Tomcat原本便支持过多特性,要对其瘦身的成本远大于丰富Jetty的成本。

2、性能比较

(1)Jetty和Tomcat性能方面差异不大。

(2)Jetty可以同时处理大量连接而且可以长时间保持连接,适合web聊天应用等等。

(3)Jetty的架构简单,因此作为服务器,Jetty可以按需加载组件,减少不必要的组件,减少了服务器内部开销,从而提高服务器性能。

(4)Jetty默认采用NIO结束处理I/O请求上更占优势,在处理静态资源时,性能较高。

3、Tomcat适合处理少数非常繁忙的链接,Tomcat的总体性能更高。Tomcat默认采用BIO处理I/O请求,在处理静态资源时,性能较差。

4、其他比较

(1)Jetty的应用更加快速,修改简单,对新的servlet规范的支持较好。

(2)Tomcat目前应用比较广泛,对javaEE和servlet的支持更加全面,很多性能会直接集成进来。

写在最后:笔者认为Jetty和Tomcat都是servlet的容器,由不同的组织开发,架构实现上不同,但都符合servlet标准,也就是说功能非常非常相似(几乎一样的)。Jetty相较Tomcat更轻量,配置相较简单,对于大多数普通互联网应用并不需要用到Tomcat其他高级特性,所以在这种情况下,使用Tomcat是很浪费资源的,当支持大规模企业级应用时,Jetty也许便需要扩展,在这场景下Tomcat便是更优的。Jetty更满足公有云的分布式环境的需求,而Tomcat更符合企业级环境。

浅聊Jetty和Tomcat的区别相关推荐

  1. Jetty与Tomcat的区别 转

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

  2. tomcat和undertow、jetty、netty的区别

    tomcat简介 在说undertow和tomcat区别之前,先说下tomcat是什么(如果知道了可以跳过哦!) Tomcat:免费开源,轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被 ...

  3. Undertow,Tomcat和Jetty服务器之间的区别

    Undertow,Tomcat和Jetty服务器配置详解与性能测试 本文文章是通过研究时下比较流行的Java框架spring boot引发的思考,希望大家能一起学习.undertow,jetty和to ...

  4. jetty与tomcat区别

    相同点 1.tomcat与jetty都是一种servlet引擎,他们都支持标准的servlet规范和javaEE规范 不同点 1.架构比较 jetty相比tomcat更为简单 jetty架构是基于Ha ...

  5. Jetty 与 Tomcat 比较,及性能分析

    主流java的web容器,主要是Tomcat, jboss, jetty, resin.由于以前我们主要用的是jboss4.0.5,但jbosse用的servlet容器是tomcat5.5,所以只进行 ...

  6. apache/nginx/tomcat的区别

    根据[1] ①:Nginx的并发性要比apache好很多: ②:nginx属于轻量级服务器软件,apache属于重量级软件: ③:nginx在处理静态页的效率要比apache好很多,apache在处理 ...

  7. Jetty 与 Tomcat

    Tomcat 的关键指标有吞吐量.响应时间.错误数.线程池.CPU 以及 JVM 内存 线程池中的线程数量不足会影响吞吐量和响应时间: 但是线程数太多会耗费大量 CPU: 当内存不足时会触发频繁地 G ...

  8. 浅聊前端程序员,后端程序员,全栈程序员的工作

    浅聊前端程序员,后端程序员,全栈程序员的工作区别 很多时候,编程小白都在思考这样一个问题,找工作到底是选前端,还是后端,今天我们就来看看什么是前端开发,后端开发.为什么美国大多数程序员是全栈程序员? ...

  9. J2EE进阶(二十四)JBoss Web和 Tomcat的区别

    J2EE进阶(二十四)JBoss Web和 Tomcat的区别 在Web2.0的浪潮中,各种页面技术和框架不断涌现,为服务器端的基础架构提出了更高的稳定性和可扩展性的要求.近年来,作为开源中间件的全球 ...

最新文章

  1. Adam又要“退休”了?耶鲁大学团队提出AdaBelief
  2. 如何将低压精密运算放大器的性能扩展到高压高侧电流检测应用(高电流电阻采集电压电路图及误差分析)
  3. python logging模块简单使用
  4. 如何做好一场技术演讲?
  5. linux扫描工具之nmap
  6. Python Tree库绘制多叉树的用法介绍
  7. springcloud项目的启动顺序_spring boot/cloud 启动方式说明
  8. 1.11 神经网络的权重初始化
  9. 霍兰德职业兴趣测试题
  10. source insight 4 破解
  11. 玩家国度ROG 幻14 拆机 升级 换固态 换配件 教程
  12. 16进制 转为图片 php_PHP实现简单RPC
  13. java中的displaytag类_java-如何在displaytag中以xlsx扩展名导出Excel文...
  14. 【语义分割】--SegNet理解
  15. android amr 播放器,Android使用createInnerAudioContext无法播放amr?
  16. Linux系统centos下如何通过命令查看CPU内存存储等硬件信息?
  17. ZZULIOJ:1132: 数字字符统计
  18. 天气很热,用Python告诉你奶茶哪家最好喝性价比最高?
  19. 4G、5G多卡聚合技术在打造智慧城市中的解决方案
  20. android pad查看cpu,苹果还是安卓?一图教你如何选择适合自己的平板

热门文章

  1. python交叉熵损失函数实现_大话交叉熵损失函数
  2. 消息加密和解密(一)
  3. python学多久可以考二级建造师吗_怎么样才能从零基础考到二级建造师?
  4. 江苏移动魔百盒CM101s-Hi3798MV100-EMMC-M8233-当贝桌面卡刷强刷固件包
  5. word2003 中调出“公式编辑器”到工具栏中
  6. 一图看懂什么是区块链
  7. OwnCloud搭建私有云存储网盘
  8. Linux 入门 day5 系统进程管理、yum仓库搭建
  9. MySQL利用关系代数进行查询_关系代数
  10. mysql的sysdate_MySQL获取时间及日期的函数--sysdate()