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

本文涉及的产品
应用实时监控服务-应用监控,每月50GB免费额度
任务调度 XXL-JOB 版免费试用,400 元额度,开发版规格
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
简介: 带你读《Apache Tomcat的云原生演进》——Tomcat的技术内幕和在喜马拉雅的实践(5)

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

3. Classload Feature

image.png

Tomcat一直比servlet多,classload机制,它打破了双亲委派模型。我们JDKclassload一般都是一层一层先问,我们先问他的附近有没有交代,一直到最顶上去。Tomcat的整个原理是,首先classpath指定,然后这两个,CommonClassLoader有自己的class。它主要做了WebAppClassLoader,因为Tomcat支持部署多个服务,我们一般还能做多个业务。

 

那么它怎么隔离呢?

 

每个应用都有一个WebAppClassLoader,它会进入JDK里面加载一下。然后它这里两个顺序,一个是从WEB-INF下的Class,这个是我们自己写代码的ClassPath,还有一个我们依赖包。而且它还分顺序,需要先加载class,这就是为什么我们能把我们依赖的第三方框架重写,还能加载的有序。因为Tomcat先加载了class,我们编译的class里面的路径代码,再加的依赖包里面的路径。

4. Performance Optimization

image.png

 image.png

 

我们的实践基本上都是用Tomcat来做的,不论是通过Tomcat部署的,还是SpringBoot嵌套的,全部默认的是Tomcat容器。

 

此外,还有一些个性化配置:

 

线程数,阻塞web服务可以2k:我们所有的web都是IO型的,你要读数据库、调rpc、调各种远程服务都是偏阻塞型的。web服务你基本都可以设定很大的线程数,要不然很容易不饱满。

 

Backlog,连接队列1024gc影响建连:因为TPC以后,你需要先到Backlog里面等到accept建连,所以我们设置成1024,你在gc可能会影响你的建连。

 

maxHeepAliveRequests 1024,提升连接复用次数:Tomcat连接多少次是有限制的,默认最多100次,比如请求往里发送100次之后,它就会把你close,如果不close就会报错。所以我们会把次数调的比较大,让连接尽可能复用,减少建连的开销。

 

maxHttpHeaderSize 32k,和网关一致,减少400code:如果你公司会经过网关,

 

经过Tomcat,一些头比较大的时候,可能会等你400排查是哪里的问题。因为我们碰到很多这种case,所以我们尽快把全链路设置的一样大,减少配置的问题。

 

对象池技术,下面两张图是Tomcat用的最多的链接池,和每个请求相关:

 

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

相关文章
|
2月前
|
Cloud Native 关系型数据库 分布式数据库
|
3月前
|
存储 关系型数据库 分布式数据库
登顶TPC-C|云原生数据库PolarDB技术揭秘:单机性能优化篇
阿里云PolarDB云原生数据库在TPC-C基准测试中,以20.55亿tpmC的成绩打破性能与性价比世界纪录。此外,国产轻量版PolarDB已上线,提供更具性价比的选择。
|
2月前
|
运维 Cloud Native 测试技术
极氪汽车云原生架构落地实践
随着极氪数字业务的飞速发展,背后的 IT 技术也在不断更新迭代。极氪极为重视客户对服务的体验,并将系统稳定性、业务功能的迭代效率、问题的快速定位和解决视为构建核心竞争力的基石。
|
2月前
|
存储 关系型数据库 分布式数据库
|
3月前
|
Cloud Native 关系型数据库 分布式数据库
登顶TPC-C|云原生数据库PolarDB技术揭秘:Limitless集群和分布式扩展篇
阿里云PolarDB云原生数据库在TPC-C基准测试中以20.55亿tpmC的成绩刷新世界纪录,展现卓越性能与性价比。其轻量版满足国产化需求,兼具高性能与低成本,适用于多种场景,推动数据库技术革新与发展。
|
2月前
|
存储 关系型数据库 分布式数据库
|
11天前
|
资源调度 Kubernetes 流计算
Flink在B站的大规模云原生实践
本文基于哔哩哔哩资深开发工程师丁国涛在Flink Forward Asia 2024云原生专场的分享,围绕Flink On K8S的实践展开。内容涵盖五个部分:背景介绍、功能及稳定性优化、性能优化、运维优化和未来展望。文章详细分析了从YARN迁移到K8S的优势与挑战,包括资源池统一、环境一致性改进及隔离性提升,并针对镜像优化、Pod异常处理、启动速度优化等问题提出解决方案。此外,还探讨了多机房容灾、负载均衡及潮汐混部等未来发展方向,为Flink云原生化提供了全面的技术参考。
Flink在B站的大规模云原生实践
|
18天前
|
存储 缓存 分布式计算
StarRocks x Iceberg:云原生湖仓分析技术揭秘与最佳实践
本文将深入探讨基于 StarRocks 和 Iceberg 构建的云原生湖仓分析技术,详细解析两者结合如何实现高效的查询性能优化。内容涵盖 StarRocks Lakehouse 架构、与 Iceberg 的性能协同、最佳实践应用以及未来的发展规划,为您提供全面的技术解读。 作者:杨关锁,北京镜舟科技研发工程师
StarRocks x Iceberg:云原生湖仓分析技术揭秘与最佳实践
|
1月前
|
资源调度 Kubernetes 调度
网易游戏 Flink 云原生实践
本文分享了网易游戏在Flink实时计算领域的资源管理与架构演进经验,从Yarn到K8s云原生,再到混合云的实践历程。文章详细解析了各阶段的技术挑战与解决方案,包括资源隔离、弹性伸缩、自动扩缩容及服务混部等关键能力的实现。通过混合云架构,网易游戏显著提升了资源利用率,降低了30%机器成本,小作业计算成本下降40%,并为未来性能优化、流批一体及智能运维奠定了基础。
118 9
网易游戏 Flink 云原生实践
|
27天前
|
人工智能 Cloud Native 安全
云原生+AI 为企业出海提供全新技术引擎!明天见
5月22日 14:00「飞天发布时刻」,阿里云云原生应用平台产品负责人李国强将重磅揭晓面向 AI 场景的云原生产品体系升级,通过弹性智能的全球一体化架构、开箱即用的云原生 AI 工程化能力,为中国企业出海提供全新技术引擎。

推荐镜像

更多