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

本文涉及的产品
Serverless 应用引擎 SAE,800核*时 1600GiB*时
可观测链路 OpenTelemetry 版,每月50GB免费额度
容器镜像服务 ACR,镜像仓库100个 不限时长
简介: 带你读《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

相关文章
|
1天前
|
运维 Cloud Native Devops
云原生技术:构建弹性、高效和可扩展的现代应用
在当今数字化时代,企业面临着日益复杂的市场需求和技术挑战。为了满足这些需求,许多企业转向了云原生技术。云原生是一种以云计算为基础的架构和方法论,旨在构建弹性、高效和可扩展的现代应用程序。本文将深入探讨云原生技术的核心概念、优势以及实施过程中的关键步骤,帮助读者更好地理解和应用这一前沿技术。
13 6
|
1天前
|
Cloud Native Devops 持续交付
云原生技术:构建现代应用的新范式##
在当今数字化时代,企业正面临着前所未有的挑战和机遇。随着云计算技术的不断发展,越来越多的企业开始采用云原生架构来构建和部署应用程序。本文将探讨云原生技术的关键概念、优势以及如何利用这些技术来推动业务创新和增长。我们将从微服务架构、容器化、持续集成/持续部署(CI/CD)等方面深入分析云原生技术的核心原理,并分享一些成功案例,帮助读者更好地理解和应用云原生技术。 ##
|
4天前
|
设计模式 Cloud Native API
云原生时代的微服务架构实践
【9月更文挑战第23天】在这篇文章中,我们将深入探讨云原生环境下的微服务架构设计原则、优势以及实施策略。文章不仅涉及理论概念,还结合具体的代码示例,帮助读者理解如何在实际项目中应用微服务架构。通过阅读本文,你将获得构建、部署和管理微服务的实用知识,为你的云原生项目奠定坚实的基础。
|
1天前
|
运维 Cloud Native 安全
云原生技术在企业数字化转型中的作用
随着云计算技术的不断演进,云原生(Cloud Native)技术成为了推动企业数字化转型的重要驱动力。本文将深入探讨云原生技术的核心概念、主要特点及其在实际应用中的优势和挑战,旨在帮助读者了解如何通过云原生技术实现更高效、灵活和创新的IT架构。
|
2天前
|
Cloud Native 持续交付 Docker
云原生技术入门与实践:Docker容器化部署示例
【9月更文挑战第25天】在数字化转型的浪潮下,云原生技术成为推动企业创新的重要力量。本文旨在通过浅显易懂的语言,为初学者揭示云原生技术的核心概念及其应用价值。我们将以Docker容器为例,逐步引导读者了解如何将应用程序容器化,并在云端高效运行。这不仅是对技术趋势的跟随,更是对资源利用和开发效率提升的探索。
12 4
|
2天前
|
运维 Cloud Native API
探索云原生技术:构建现代应用的新范式
在当今这个数字化时代,云原生技术正迅速成为推动企业数字化转型的关键力量。它不仅重新定义了应用的构建、部署和运行方式,还为企业带来了前所未有的灵活性、可扩展性和弹性。本文旨在深入探讨云原生技术的精髓,通过解析其核心概念、关键技术和实践案例,揭示云原生如何引领我们进入一个更加高效、智能的应用开发新时代。不同于传统的技术综述,本文将以通俗易懂的语言,结合条理清晰的逻辑结构,带领读者一同领略云原生技术的奥秘与魅力。
|
2天前
|
运维 Cloud Native Devops
云原生技术:构建现代应用的基石
本文深入探讨了云原生技术的核心概念、主要特点及其在现代软件开发和运维中的重要性。通过分析云原生技术的十二要素、微服务架构以及DevOps实践,揭示了云原生如何助力企业实现高效、灵活和可扩展的应用部署。同时,本文还讨论了云原生技术在实际应用中的优势与挑战,并展望了其未来的发展趋势。
13 4
|
4天前
|
Kubernetes Cloud Native 持续交付
云原生技术在现代应用开发中的实践与思考
【9月更文挑战第23天】本文将深入探讨云原生技术如何革新现代应用的开发流程。通过分析云原生的核心概念、优势以及实际应用案例,我们旨在揭示这一新兴技术范式如何助力开发者和企业更高效、灵活地构建和部署应用程序。文章还将提供具体代码示例,展示云原生技术在实际项目中的应用,帮助读者更好地理解和掌握该技术。
|
2天前
|
Kubernetes Cloud Native 持续交付
云原生技术:构建现代应用的基石
想象一下,如果我们的应用程序像水一样流动,自由地在各种环境中穿行,不受任何限制。这就是云原生技术的承诺——提供一种更加灵活、高效和可扩展的方法来构建和运行应用程序。本文将深入探讨云原生的核心概念、关键技术以及它如何改变我们的开发和部署方式,揭示这一技术如何成为现代应用不可或缺的基石。
|
2天前
|
Kubernetes Cloud Native 安全
云原生技术:构建高效、灵活的现代应用架构
本文深入探讨了云原生技术的核心概念、主要特点及其在现代应用开发中的重要性。通过分析云原生技术的实际应用案例,揭示了其如何帮助企业实现应用的快速迭代、弹性扩展和高可用性。同时,文章还讨论了采用云原生技术时面临的挑战及相应的解决策略,为读者提供了一套完整的云原生技术实践指南。

推荐镜像

更多