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

本文涉及的产品
任务调度 XXL-JOB 版免费试用,400 元额度,开发版规格
应用实时监控服务-应用监控,每月50GB免费额度
函数计算FC,每月15万CU 3个月
简介: 带你读《Apache Tomcat的云原生演进》——Tomcat的技术内幕和在喜马拉雅的实践(1)

Tomcat的技术内幕和在喜马拉雅的实践

1. IO Thread Model

image.png 

 

Tomcat是一个非常完整、完善、功能非常强大的开源项目。我们每个人开始做开发,接触的第一个项目可能就是Tomcat。我们今天主要介绍的就是IO和线程模型,IO包括NIONIO2

 

上图是NIO的线程模型,它负责接收连接。Tomcat创建一个端口,然后我们接受浏览器发起的请求,accept线程是block,有连接就连接,没有连接就等待新的连接请求。

 

它接收连接之后,会创建一些Socket,然后把这些Socket放到EventQueue里,通过Poller线程消费EventQueue里的Socket,注册到Selector上。Poller线程负责Selector循环,确认上面是否有读/写事件,如果有读/写事件发生,就生产一个SocketProcessor,提交到Catalina work thread pool

 

image.png 

 

Poller线程负责将读取事件注册到Selector,创建SocketProcessor提交到Catalina线程池里,从Selector注销读取事件。有一个读事件过来了,它要提交到SocketProcessor真正去处理这个请求。但是Poller线程不负责读,它只做事件触发机制。即告诉你一个事件请求过来了,你可以开始读了。

 

然后它要把这个事件unregister掉,因为一个请求需要保证只有一个Catalina work线程处理,否则就又会创建一个Socket交给另外一个线程处理。所以在Catalina work线程处理的时候,一定不能有另外一个线程去读Socket的数据,否则包就会乱掉,所以就会有unregister这个操作。

 

image.png 

 

刚刚讲了Poller线程只是告诉你有读事件可以读了,具体的IO的操作还是由Catalina work线程处理。具体的操作包括解析请求行没有阻塞、解析头无阻塞、过滤器路由器、servlet路由器、读body阻塞。


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

相关文章
|
11天前
|
Cloud Native 关系型数据库 分布式数据库
|
21天前
|
运维 Cloud Native 测试技术
极氪汽车云原生架构落地实践
随着极氪数字业务的飞速发展,背后的 IT 技术也在不断更新迭代。极氪极为重视客户对服务的体验,并将系统稳定性、业务功能的迭代效率、问题的快速定位和解决视为构建核心竞争力的基石。
|
25天前
|
存储 关系型数据库 分布式数据库
|
1月前
|
Cloud Native 关系型数据库 分布式数据库
登顶TPC-C|云原生数据库PolarDB技术揭秘:Limitless集群和分布式扩展篇
阿里云PolarDB云原生数据库在TPC-C基准测试中以20.55亿tpmC的成绩刷新世界纪录,展现卓越性能与性价比。其轻量版满足国产化需求,兼具高性能与低成本,适用于多种场景,推动数据库技术革新与发展。
|
12天前
|
存储 关系型数据库 分布式数据库
|
1月前
|
存储 关系型数据库 分布式数据库
登顶TPC-C|云原生数据库PolarDB技术揭秘:单机性能优化篇
阿里云PolarDB云原生数据库在TPC-C基准测试中,以20.55亿tpmC的成绩打破性能与性价比世界纪录。此外,国产轻量版PolarDB已上线,提供更具性价比的选择。
|
1月前
|
存储 缓存 Cloud Native
云原生时代的架构革新,Apache Doris 存算分离如何实现弹性与性能双重提升
随着云基础设施的成熟,Apache Doris 3.0 正式支持了存算分离全新模式。基于这一架构,能够实现更低成本、极致弹性以及负载隔离。本文将介绍存算分离架构及其优势,并通过导入性能、查询性能、资源成本的测试,直观展现存算分离架构下的性能表现,为读者提供具体场景下的使用参考。
云原生时代的架构革新,Apache Doris 存算分离如何实现弹性与性能双重提升
|
17天前
|
存储 SQL 缓存
Apache Doris & SelectDB 技术能力全面解析
本文将对 Doris & SelectDB 适合的分析场景和技术能力进行概述解析
Apache Doris & SelectDB 技术能力全面解析
|
11天前
|
Cloud Native 关系型数据库 分布式数据库
登顶TPC-C|云原生数据库PolarDB技术揭秘:弹性并行查询(ePQ)篇
阿里云PolarDB云原生数据库在TPC-C基准测试中刷新了性能和性价比的世界纪录,达到每分钟20.55亿笔交易(tpmC),单位成本仅0.8元人民币。PolarDB采用云原生架构,支持数千节点横向扩展,具备弹性并行查询(ePQ)功能,可显著加速复杂查询。此外,PolarDB还推出了国产轻量版,以软件形式部署,满足多样化需求。
|
1月前
|
存储 人工智能 缓存
AI变革药物研发:深势科技的云原生实践之路
阿里云助力深势科技推出创新的玻尔Bohrium®科研云平台和Hermite®药物计算设计平台,并持续完善。这两项先进的工业设计与仿真基础设施成果通过AI技术赋能科学研究和工业研发,不仅大幅缩短了药物研发周期,降低了成本,还显著提高了研发成功率,为生物医药行业带来了前所未有的变革,这是AI for Science领域的重大突破。
161 38

推荐镜像

更多
下一篇
oss创建bucket