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

本文涉及的产品
任务调度 XXL-JOB 版免费试用,400 元额度,开发版规格
云原生网关 MSE Higress,422元/月
MSE Nacos/ZooKeeper 企业版试用,1600元额度,限量50份
简介: 带你读《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

相关文章
|
2月前
|
运维 监控 Cloud Native
【云故事探索】NO.17:国诚投顾的云原生 Serverless 实践
国诚投顾携手阿里云,依托Serverless架构实现技术全面升级,构建高弹性、智能化技术底座,提升业务稳定性与运行效率。通过云原生API网关、微服务治理与智能监控,实现流量精细化管理与系统可观测性增强,打造安全、敏捷的智能投顾平台,助力行业数字化变革。
【云故事探索】NO.17:国诚投顾的云原生 Serverless 实践
|
2月前
|
消息中间件 OLAP Kafka
Apache Doris 实时更新技术揭秘:为何在 OLAP 领域表现卓越?
Apache Doris 为何在 OLAP 领域表现卓越?凭借其主键模型、数据延迟、查询性能、并发处理、易用性等多方面特性的表现,在分析领域展现了独特的实时更新能力。
199 9
|
4月前
|
Kubernetes Cloud Native 安全
云原生机密计算新范式 PeerPods技术方案在阿里云上的落地和实践
PeerPods 技术价值已在阿里云实际场景中深度落地。
|
4月前
|
Kubernetes Cloud Native 安全
云原生机密计算新范式 PeerPods 技术方案在阿里云上的落地和实践
PeerPods 技术价值已在阿里云实际场景中深度落地。
|
7天前
|
SQL 人工智能 数据挖掘
Apache Doris 4.0 AI 能力揭秘(二):为企业级应用而生的 AI 函数设计与实践
Apache Doris 4.0 原生集成 LLM 函数,将大语言模型能力深度融入 SQL 引擎,实现文本处理智能化与数据分析一体化。通过十大函数,支持智能客服、内容分析、金融风控等场景,提升实时决策效率。采用资源池化管理,保障数据一致性,降低传输开销,毫秒级完成 AI 分析。结合缓存复用、并行执行与权限控制,兼顾性能、成本与安全,推动数据库向 AI 原生演进。
44 0
Apache Doris 4.0 AI 能力揭秘(二):为企业级应用而生的 AI 函数设计与实践
|
16天前
|
消息中间件 监控 Java
Apache Kafka 分布式流处理平台技术详解与实践指南
本文档全面介绍 Apache Kafka 分布式流处理平台的核心概念、架构设计和实践应用。作为高吞吐量、低延迟的分布式消息系统,Kafka 已成为现代数据管道和流处理应用的事实标准。本文将深入探讨其生产者-消费者模型、主题分区机制、副本复制、流处理API等核心机制,帮助开发者构建可靠、可扩展的实时数据流处理系统。
194 4
|
2月前
|
弹性计算 运维 Cloud Native
【云故事探索】NO.17:国诚投顾的云原生Serverless实践
简介: 通过与阿里云深度合作,国诚投顾完成了从传统 ECS 架构向云原生 Serverless 架构的全面转型。新的技术架构不仅解决了原有系统在稳定性、弹性、运维效率等方面的痛点,还在成本控制、API 治理、可观测性、DevOps 自动化等方面实现了全方位升级。
|
29天前
|
存储 弹性计算 Cloud Native
云原生数据库的演进与应用实践
随着企业业务扩展,传统数据库难以应对高并发与弹性需求。云原生数据库应运而生,具备计算存储分离、弹性伸缩、高可用等核心特性,广泛应用于电商、金融、物联网等场景。阿里云PolarDB、Lindorm等产品已形成完善生态,助力企业高效处理数据。未来,AI驱动、Serverless与多云兼容将推动其进一步发展。
103 8
|
2月前
|
SQL 存储 运维
Apache Doris 在菜鸟的大规模湖仓业务场景落地实践
本文介绍了 Apache Doris 在菜鸟的大规模落地的实践经验,菜鸟为什么选择 Doris,以及 Doris 如何在菜鸟从 0 开始,一步步的验证、落地,到如今上万核的规模,服务于各个业务线,Doris 已然成为菜鸟 OLAP 数据分析的最优选型。
158 2
Apache Doris 在菜鸟的大规模湖仓业务场景落地实践
|
2月前
|
运维 监控 Cloud Native
【云故事探索】NO.17:国诚投顾的云原生 Serverless 实践
通过与阿里云深度合作,国诚投顾完成了从传统 ECS 架构向云原生 Serverless 架构的全面转型。新的技术架构不仅解决了原有系统在稳定性、弹性、运维效率等方面的痛点,还在成本控制、API 治理、可观测性、DevOps 自动化等方面实现了全方位升级。

推荐镜像

更多