深入拆解 Tomcat & Jetty
李号双
eBay 技术主管
38890 人已学习
新⼈⾸单¥68
登录后,你可以任选4讲全文学习
课程目录
已完结/共 45 讲
开篇词 (1讲)
深入拆解 Tomcat & Jetty
15
15
1.0x
00:00/00:00
登录|注册

41 | 热点问题答疑(4): Tomcat和Jetty有哪些不同?

关键的企业级应用 -> 选择Tomcat
资源消耗少、对稳定性要求不高 -> 选择Jetty
Tomcat比Jetty更加成熟和稳定
Jetty消耗的线程和内存资源明显比Tomcat要少
Jetty在吞吐量和响应速度方面稍有优势
资源使用情况比较
吞吐量、延迟和错误率比较
压测Jetty
压测Tomcat
使用Spring Boot应用程序
提供HandlerCollection和ScopeHandler
Handler之间关系比较松散
采用Handler责任链模式
提供较好的扩展机制
复杂
基于多级容器的模式
Jetty更像是一位年轻的后起之秀
Tomcat好比是一位工作多年比较成熟的工程师
选型建议
结果分析
测试结果
测试计划
Jetty
Tomcat
可运行在小型嵌入式设备中
支持功能扩展和裁剪
配置简单
简洁小巧
年轻
对复杂的企业级应用支持更全面
应用广泛
成熟稳定
总结
实例压测比较
设计架构比较
Jetty的特点
Tomcat的核心竞争力
Tomcat和Jetty有哪些不同?
参考文章

该思维导图由 AI 生成,仅供参考

作为专栏最后一个模块的答疑文章,我想是时候总结一下 Tomcat 和 Jetty 的区别了。专栏里也有同学给我留言,询问有关 Tomcat 和 Jetty 在系统选型时需要考虑的地方,今天我也会通过一个实战案例来比较一下 Tomcat 和 Jetty 在实际场景下的表现,帮你在做选型时有更深的理解。
我先来概括一下 Tomcat 和 Jetty 两者最大的区别。大体来说,Tomcat 的核心竞争力是成熟稳定,因为它经过了多年的市场考验,应用也相当广泛,对于比较复杂的企业级应用支持得更加全面。也因为如此,Tomcat 在整体结构上比 Jetty 更加复杂,功能扩展方面可能不如 Jetty 那么方便。
而 Jetty 比较年轻,设计上更加简洁小巧,配置也比较简单,功能也支持方便地扩展和裁剪,比如我们可以把 Jetty 的 SessionHandler 去掉,以节省内存资源,因此 Jetty 还可以运行在小型的嵌入式设备中,比如手机和机顶盒。当然,我们也可以自己开发一个 Handler,加入 Handler 链中用来扩展 Jetty 的功能。值得一提的是,Hadoop 和 Solr 都嵌入了 Jetty 作为 Web 服务器。
从设计的角度来看,Tomcat 的架构基于一种多级容器的模式,这些容器组件具有父子关系,所有组件依附于这个骨架,而且这个骨架是不变的,我们在扩展 Tomcat 的功能时也需要基于这个骨架,因此 Tomcat 在设计上相对来说比较复杂。当然 Tomcat 也提供了较好的扩展机制,比如我们可以自定义一个 Valve,但相对来说学习成本还是比较大的。而 Jetty 采用 Handler 责任链模式。由于 Handler 之间的关系比较松散,Jetty 提供 HandlerCollection 可以帮助开发者方便地构建一个 Handler 链,同时也提供了 ScopeHandler 帮助开发者控制 Handler 链的访问顺序。关于这部分内容,你可以回忆一下专栏里讲的回溯方式的责任链模式。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

Tomcat和Jetty是两种常见的Java Web服务器,它们在设计理念、功能特点和性能表现上有着明显的区别。Tomcat作为一位经验丰富的工程师,稳定成熟,适用于复杂的企业级应用,但相对复杂且不太灵活;而Jetty则更像是一位年轻的后起之秀,设计简洁灵活,适用于轻量级应用和嵌入式设备。在一次实际压测中,Jetty在吞吐量和响应速度上略有优势,同时消耗的线程和内存资源也较少,但存在一定的错误率;而Tomcat则表现更加稳定,没有出现错误。因此,选型时需根据系统需求权衡资源消耗和稳定性,对于关键的企业级应用建议选择Tomcat,而对于资源消耗要求较低的轻量级应用则可考虑Jetty。文章通过实例和理论分析,为读者提供了对比Tomcat和Jetty的参考,帮助读者更好地理解和选择适合自己系统的Web服务器。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《深入拆解 Tomcat & Jetty 》
新⼈⾸单¥68
立即购买
登录 后留言

全部留言(12)

  • 最新
  • 精选
  • chun1123
    同样意犹未尽!
    2019-08-15
    6
  • undefined
    jetty 那 2% 的错误主要是什么导致的哈?
    2021-04-08
    4
  • 完美世界
    jetty 吞吐量高,适合做网关。tomcat成熟稳定,更适合做核心应用。 springboot 内置了三个容器:1.undertow;2.jetty;3.tomcat。默认的是tomcat。 详细对比可以参考:https://examples.javacodegeeks.com/enterprise-java/spring/tomcat-vs-jetty-vs-undertow-comparison-of-spring-boot-embedded-servlet-containers
    2019-09-17
    3
  • Zzz
    这门课是一个宝藏!
    2020-07-19
    1
  • 任鹏斌
    第一遍读完了打算开始第二遍细细品味
    2019-12-18
    1
  • 许童童
    这篇文章有点短,没学够的感觉。
    2019-08-15
    1
  • QQ怪
    学的意犹未尽
    2019-08-15
    1
  • 托尼斯威特
    Jetty ErrorRate>0的原因是什么? 是因为有些请求分配不到线程所以超时了吗?
    2020-08-31
  • 小熊
    最后的示例很形象,哈哈
    2020-05-03
  • wakaka
    为啥选择100个线程模拟客户端请求呢?对于本地单机压测,这个数值是高还是低呢?
    2020-04-28
收起评论
显示
设置
留言
12
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部