带你读《Apache Tomcat的云原生演进》——Tomcat的技术内幕和在喜马拉雅的实践(3)

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
可观测监控 Prometheus 版,每月50GB免费额度
云原生网关 MSE Higress,422元/月
简介: 带你读《Apache Tomcat的云原生演进》——Tomcat的技术内幕和在喜马拉雅的实践(3)

带你读《Apache Tomcat的云原生演进》——Tomcat的技术内幕和在喜马拉雅的实践(2)https://developer.aliyun.com/article/1377542

image.png

 

接下来做一个比较,看一看到底哪个更合适我们的业务场景使用。

 

NIO2NIO相比,优势是连接一过来,它就可以主动去读这个数据,这样就减少了很多的注册和取消的事件。像NIO它就会先注册一个读事件,然后等数据来了,再把注册取消掉,最后交给后面的Catalina work线程处理这个请求。此外,它的性能模型更简单,它少了Poller线程。

 

NIO2NIO相比,缺点是容易受慢客户端影响。刚开始有事件过来的时候,它用Poller线程来读,然后回调Catalina work线程让它继续读后面的数据。但是如果是没有Poller线程的情况下,body就会阻塞,而且这个时候是Catalina work线程。假如你设了100个线程值,但读body都阻塞了,那么后面Poller线段就会连接一个新的连接,然后提交一个任务到Catalina work线程来处理。但这个时候就会导致没有线程来处理新的连接事件的请求。

 

EPoll read 容易成为瓶颈。因为IO拷贝操作是poll线程的,所以如果是并发量比较大/body比较大的情况下,很容易使copy的进度比较慢,还可能会影响你的建连效率

 

增加了复杂性。与NIO相比,它的复杂性确实增加了很多,它有各种的回调。因为它是通过异步模拟的NIO写代码的方式。

 

此外,还有一点,NIO2文件发送没有基于应用操作系统这种拷贝模式,直接通过操作系统发到连接缓存的channel里去。但还是用了普通的IO 把它读出来,然后再把它写到channel里面去。相比NIO反而增加了它拷贝的次数。

 

那么到底怎么选呢?

 

Tomcat 910默认的还是NIO。通过官方的配置我们也能看得出来,它建议的还是NIO。虽然切换次数减少了,系统调用次数减少,系统的切换减少了。但是性能在我们平时功能可能感觉不到,所以对于稳定还是NIO这种模式。

带你读《Apache Tomcat的云原生演进》——Tomcat的技术内幕和在喜马拉雅的实践(4)https://developer.aliyun.com/article/1377539

相关文章
|
2月前
|
Cloud Native 关系型数据库 分布式数据库
|
3月前
|
存储 关系型数据库 分布式数据库
登顶TPC-C|云原生数据库PolarDB技术揭秘:单机性能优化篇
阿里云PolarDB云原生数据库在TPC-C基准测试中,以20.55亿tpmC的成绩打破性能与性价比世界纪录。此外,国产轻量版PolarDB已上线,提供更具性价比的选择。
|
2月前
|
存储 关系型数据库 分布式数据库
|
3月前
|
Cloud Native 关系型数据库 分布式数据库
登顶TPC-C|云原生数据库PolarDB技术揭秘:Limitless集群和分布式扩展篇
阿里云PolarDB云原生数据库在TPC-C基准测试中以20.55亿tpmC的成绩刷新世界纪录,展现卓越性能与性价比。其轻量版满足国产化需求,兼具高性能与低成本,适用于多种场景,推动数据库技术革新与发展。
|
2月前
|
存储 关系型数据库 分布式数据库
|
5月前
|
消息中间件 存储 Cloud Native
云消息队列 Kafka 版 V3 系列荣获信通院“云原生技术创新标杆案例”
2024 年 12 月 24 日,由中国信息通信研究院(以下简称“中国信通院”)主办的“2025 中国信通院深度观察报告会:算力互联网分论坛”,在北京隆重召开。本次论坛以“算力互联网 新质生产力”为主题,全面展示中国信通院在算力互联网产业领域的研究、实践与业界共识,与产业先行者共同探索算力互联网产业未来发展的方向。会议公布了“2024 年度云原生与应用现代化标杆案例”评选结果,“云消息队列 Kafka 版 V3 系列”荣获“云原生技术创新标杆案例”。
163 38
|
22天前
|
存储 缓存 分布式计算
StarRocks x Iceberg:云原生湖仓分析技术揭秘与最佳实践
本文将深入探讨基于 StarRocks 和 Iceberg 构建的云原生湖仓分析技术,详细解析两者结合如何实现高效的查询性能优化。内容涵盖 StarRocks Lakehouse 架构、与 Iceberg 的性能协同、最佳实践应用以及未来的发展规划,为您提供全面的技术解读。 作者:杨关锁,北京镜舟科技研发工程师
StarRocks x Iceberg:云原生湖仓分析技术揭秘与最佳实践
|
3月前
|
存储 缓存 Cloud Native
云原生时代的架构革新,Apache Doris 存算分离如何实现弹性与性能双重提升
随着云基础设施的成熟,Apache Doris 3.0 正式支持了存算分离全新模式。基于这一架构,能够实现更低成本、极致弹性以及负载隔离。本文将介绍存算分离架构及其优势,并通过导入性能、查询性能、资源成本的测试,直观展现存算分离架构下的性能表现,为读者提供具体场景下的使用参考。
云原生时代的架构革新,Apache Doris 存算分离如何实现弹性与性能双重提升
|
1月前
|
人工智能 Cloud Native 安全
云原生+AI 为企业出海提供全新技术引擎!明天见
5月22日 14:00「飞天发布时刻」,阿里云云原生应用平台产品负责人李国强将重磅揭晓面向 AI 场景的云原生产品体系升级,通过弹性智能的全球一体化架构、开箱即用的云原生 AI 工程化能力,为中国企业出海提供全新技术引擎。
|
1月前
|
安全 Apache 数据库
【倒计时3天】NineData x Apache Doris x 阿里云联合举办数据库技术Meetup,5月24日深圳见!
5月24日,NineData联合Apache Doris与阿里云在深圳举办数据库技术Meetup。活动聚焦「数据实时分析」与「数据同步迁移」两大领域,邀请行业专家分享技术趋势、产品实践及解决方案,助力企业构建高效安全的数据管理体系。时间:14:00-17:30;地点:深圳新一代产业园2栋20楼会议室。线下名额有限(80人),速报名参与深度交流!
49 1

推荐镜像

更多