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

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
可观测可视化 Grafana 版,10个用户账号 1个月
简介: 带你读《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

相关文章
|
5天前
|
运维 Cloud Native 持续交付
构建未来:云原生技术在企业数字化转型中的关键作用
【4月更文挑战第21天】 随着企业逐渐转向数字化运营,云原生技术以其独特的优势成为了推动转型的核心力量。本文将探讨云原生技术如何通过提供灵活、可扩展的解决方案来帮助企业应对不断变化的市场需求,同时确保系统的可靠性和安全性。我们将深入分析容器化、微服务架构、持续集成与持续部署(CI/CD)等关键技术,并讨论它们如何共同作用于企业的云原生旅程。
19 5
|
1月前
|
运维 Cloud Native 持续交付
探索云原生技术的未来发展趋势
随着云计算技术的快速发展,云原生技术作为一种新兴的技术范式正逐渐受到更多关注。本文将深入探讨云原生技术在未来的发展趋势,分析其对于软件开发、部署和运维等方面的影响,展望其在不断变化的技术环境中的应用前景。
27 1
|
28天前
|
设计模式 安全 Java
【分布式技术专题】「Tomcat技术专题」 探索Tomcat技术架构设计模式的奥秘(Server和Service组件原理分析)
【分布式技术专题】「Tomcat技术专题」 探索Tomcat技术架构设计模式的奥秘(Server和Service组件原理分析)
33 0
|
4天前
|
Cloud Native Serverless 开发者
阿里云助力开发者创新:探索云原生技术的新境界
阿里云开发者社区推动云原生技术发展,提供丰富产品(如容器服务、Serverless、微服务架构、服务网格)与学习平台,助力企业数字化转型。开发者在此探索实践,共享资源,参与技术活动,共同创新,共创云原生技术新篇章。一起加入,开启精彩旅程!
62 2
|
30天前
|
运维 Cloud Native 持续交付
探索云原生技术的未来发展方向
随着云计算技术的不断发展,云原生技术作为一个新兴的概念逐渐受到关注。本文将探讨云原生技术的定义、特点以及未来发展方向,旨在帮助读者更好地理解和把握这一领域的发展趋势。
|
18天前
|
Cloud Native 安全 开发者
云原生技术的未来演进与应用展望
【4月更文挑战第9天】 随着企业数字化转型的不断深入,云原生技术以其独特的弹性、敏捷性和可扩展性成为推动创新的重要力量。本文将探讨云原生技术的发展趋势,分析其在各行各业中的应用前景,并针对未来的挑战提出相应的对策和建议。我们还将讨论如何利用云原生技术优化资源配置,提高业务连续性,并最终实现企业的技术升级和价值增长。
|
1月前
|
监控 Cloud Native 持续交付
云原生技术的崛起与发展
在当今数字化时代,云计算和云原生技术已经成为企业信息技术架构的重要组成部分。本文将探讨云原生技术的定义、特点以及其在当今技术发展中的重要性,同时分析云原生技术对于企业数字化转型的意义和影响。
14 2
|
8天前
|
Cloud Native Devops 持续交付
构建未来:云原生技术在企业数字化转型中的关键角色
【4月更文挑战第18天】 随着企业加速其数字化转型的步伐,云原生技术已成为推动创新与维护企业敏捷性的基石。本文将深入探讨云原生的概念、核心技术以及如何在企业环境中实现有效部署。我们将剖析容器化、微服务架构、DevOps和持续集成/持续部署(CI/CD)等关键技术,并讨论它们如何共同塑造一个灵活、可扩展且高效的云环境。文章还将展示通过采用云原生实践,企业能够如何优化资源利用、加快产品上市时间,并提供一流的客户体验。
|
13天前
|
Kubernetes 监控 Cloud Native
构建高效云原生应用:基于Kubernetes的微服务治理实践
【4月更文挑战第13天】 在当今数字化转型的浪潮中,企业纷纷将目光投向了云原生技术以支持其业务敏捷性和可扩展性。本文深入探讨了利用Kubernetes作为容器编排平台,实现微服务架构的有效治理,旨在为开发者和运维团队提供一套优化策略,以确保云原生应用的高性能和稳定性。通过分析微服务设计原则、Kubernetes的核心组件以及实际案例,本文揭示了在多变的业务需求下,如何确保系统的高可用性、弹性和安全性。
17 4
|
25天前
|
人工智能 Cloud Native 物联网
探索云原生技术的发展趋势与应用前景
在当今数字化时代,云原生技术已经成为企业数字化转型的核心驱动力之一。本文将深入探讨云原生技术的发展趋势和应用前景,分析其在大数据、人工智能、物联网等领域的应用,并探讨未来可能的发展方向。
12 1

热门文章

最新文章

推荐镜像

更多