当前位置:首页 > 数码 > Spring-Boot-Tomcat-经常使用-内嵌主机的三个最佳通常-优化性能 (springboot启动)

Spring-Boot-Tomcat-经常使用-内嵌主机的三个最佳通常-优化性能 (springboot启动)

admin4个月前 (05-06)数码46

在SpringBoot中优化有三种形式,以便成功更好的性能和资源应用率。

线程池设置

在SpringBoot运行程序中调整ApacheTomcat线程触及性能嵌入式Tomcat主机,调整Tomcat的线程设置相对繁难。

在lication.properties或application.yml中性能,调整线程平衡的关键属性如下:

示例:

server:tomcat:max-threads:200min-spare-threads:10accept-count:100

经常使用Executors(可选)

只管SpringBoot提供了性能线程池的属性,但咱们可以经过经常使用Executors来成功更初级的线程治理。

示例:

importorg.springframework.context.annotation.Bean;importorg.springframework.context.annotation.Configuration;importorg.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;@ConfigurationpublicclassExecutorConfig{@BeanpublicThreadPoolTaskExecutorthreadPoolTaskExecutor(){ThreadPoolTaskExecutorexecutor=newThreadPoolTaskExecutor();executor.setCorePoolSize(10);executor.setMaxPoolSize(200);executor.setQueueCapacity(100);executor.setThreadNamePrefix("custom-executor-");returnexecutor;}}

在上方的示例中,咱们将最大队列容量设置为100。你可以依据运行程序的要求调整该值。适当的值取决于预期的流量以及主机有效处置排队恳求的才干。

当到达最大队列容量时,其余传入恳求将被拒绝,这或者会造成客户端衔接被拒绝。因此,依据运行程序的容量和主机上的可用资源设置此值十分关键。

而后,咱们可以经过在application.properties中性能Tomcat衔接器:

server.tomcat.executor=customExecutor

经常使用NIO或APR衔接器

在SpringBoot中经常使用TomcatNIO或APR(Apache可移植运转时)衔接器可以显着优化Web运行程序的性能,特意是在处置少量并发衔接和非阻塞I/O操作时。这些衔接器提供了改良的可裁减性和照应才干。

NIO衔接器

NIO衔接器经常使用的新I/O框架和非阻塞I/O操作。关于须要高并发性和高效处置许多同时衔接的运行程序来说十分有效。以下是在SpringBoot中经常使用NIO衔接器的方法:

server.tomcat.protocol="org.apache.coyote.http11.Http11NioProtocol"

NIO衔接器的好处:

APR衔接器

APR衔接器经常使用ApachePortableRuntime库来提供原生性能增强,倡导用于消费部署。它可以提高性能,特意是关于高流量、消费级运行程序。以下是在SpringBoot中经常使用APR衔接器的方法:

server.tomcat.protocol="org.apache.coyote.http11.Http11AprProtocol"

要启用APR衔接器,你须要在主机上装置APR库,并确保装置的Tomcat是经常使用APR构建的。

APR衔接器的好处:

JVM优化

优化Tomcat的Java虚构机(JVM)关于运行程序高效运转并体现良好至关关键。以下是经常使用Tomcat时JVM优化的一些关键留意事项:

依据你的运行程序的特点和性能要求选用GC算法。可以经常使用JAVA_OPTS环境变量在Tomcat的catalina.sh或setenv.sh脚本中设置GC。

论断

在SpringBoot运行程序中优化Tomcat关于成功最佳性能至关关键。详细设置或者会由于运行程序要求而有所不同,所以继续监控和调整至关关键。


springboot框架优点

SpringBoot框架的优点有:可快速构建独立的Spring应用、直接嵌入Tomcat、Jetty和Undertow服务器(无需部署WAR文件)、提供生产就绪功能等等。

1、可快速构建独立的Spring应用:SpringBoot是一个依靠大量注解实现自动化配置的全新框架。在构建Spring应用时,我们只需要添加相应的场景依赖,SpringBoot就会根据添加的场景依赖自动进行配置,在无须额外手动添加配置的情况下快速构建出一个独立的Spring应用。

优化性能

2、直接嵌入Tomcat、Jetty和Undertow服务器(无需部署WAR文件):传统的Spring应用部署时,通常会将应用打成WAR包形式并部署到Tomcat、Jetty或Undertow服务器中。SpringBoot框架内嵌了Tomcat、Jetty和Undertow服务器,而且可以自动将项目打包,并在项目运行时部署到服务器中。

3、提供生产就绪功能:SpringBoot提供了一些用于生产环境运行时的特性,例如指标、监控检查和外部化配置。其中,指标和监控检查可以帮助运维人员在运维期间监控项目运行情况;外部化配置可以使运维人员快速、方便地进行外部化配置和部署工作。

SpringBoot的核心功能介绍:

1、独立运行:SpringBoot开发的应用可以以JRA包的形式独立运行,运行一个SpringBoot应用只需通过java-jar 来运行。

2、内嵌容器:SpringBoot内嵌了多个WEB容器,如:Tomcat、Jetty、Undertow,所以可以使用非WAR包形式进行项目部署。

3、自动starter依赖:SpringBoot提供了一系列的starter来简化Maven的依赖加载。starter是一组方便的依赖关系描述符,它将常用的依赖分组并将其合并到一个依赖中,这样就可以一次性将相关依赖添加到Maven或Gradle中。

4、自动配置:SpringBoot会根据在类路径中的JAR包和类,自动将类注入SpringBoot的上下文中极大地减少配置的使用。

以上内容参考:网络百科-SpringBoot

Springboot简介

Springboot可以简化spring应用程序的创建和开发过程,也可以说Springboot可以大大简化之前SSM(SpringMVC+Spring+Mybatis)的框架进行开发的过程。 它可以省去之前繁琐的编辑配置文件的过程,采用 大量的默认配置 来简化开发过程。 正因为上述的优点,Springboot可以非常容易和快速地创建基于Spring框架的应用程序,使得编码、配置、部署和监控都变得简单了,因此它在业界备受关注。 2.1、能够快速创建基于Spring的程序 2.2能够直接使用java main方法启动内嵌的Tomcat服务器运行Springboot程序,不需要部署war文件 2.3 提供约定的starter POM来简化Maven配置,使得这个过程更加简单 2.4 自动化配置,根据项目的Maven依赖配置,springboot可以自动配置Spring、SpringMVC等等 2.5 提供了程序的健康检查功能 2.6 基本可以完全不使用XML配置文件,采用注解来配置3.1 自动配置 3.2 起步依赖

免责声明:本文转载或采集自网络,版权归原作者所有。本网站刊发此文旨在传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及版权、内容等问题,请联系本网,我们将在第一时间删除。同时,本网站不对所刊发内容的准确性、真实性、完整性、及时性、原创性等进行保证,请读者仅作参考,并请自行核实相关内容。对于因使用或依赖本文内容所产生的任何直接或间接损失,本网站不承担任何责任。

标签: SpringBoot

“Spring-Boot-Tomcat-经常使用-内嵌主机的三个最佳通常-优化性能 (springboot启动)” 的相关文章

Spring-释放数据传输潜力的数据压缩技术-微服务 (springboot启动)

Spring-释放数据传输潜力的数据压缩技术-微服务 (springboot启动)

简介 随着云原生架构的兴起,微服务已成为可扩展和可维护系统的重要构建块。顾名思义,微服务是小型的、独立的服务,它们共同构成一个完整的系统。当使用微服务构建系统时,尤其是那些具有大量数据交换的系统...

比如每日有大量用户访问和数据替换-服务器的带宽需求与网站的访问量密切相关-那么就须要更大的带宽来满足需求-访问量-假设你的网站流量大 (比如每日有大事的句子)

比如每日有大量用户访问和数据替换-服务器的带宽需求与网站的访问量密切相关-那么就须要更大的带宽来满足需求-访问量-假设你的网站流量大 (比如每日有大事的句子)

SpringBeanDefinition元信息定义形式 BeanDefinition是一个蕴含Bean元数据的对象。它形容了如何创立Bean实例、Bean属性的值以及Bean之间的依赖相关。...

b-b-核心原理拆解与源码分析-2.0-Spring-Boot-深度实践 (核心b类期刊有哪些)

b-b-核心原理拆解与源码分析-2.0-Spring-Boot-深度实践 (核心b类期刊有哪些)

SpringBoot是一个基于Spring的轻量级框架,它简化了Spring应用程序的创建过程,使得开发者能够快速搭建一个可运行的应用程序。随着SpringBoot2.0版本的发布,其功能和性能得...

Security权限控制框架入门指南-Spring (security)

Security权限控制框架入门指南-Spring (security)

在罕用的后盾治理系统中,通常都会有访问权限控制的需求,用于限度不同人员关于接口的访问才干,假设用户不具有指定的权限,则不能访问某些接口。 本文将用waynboot-mall名目举例,给大家引...

Boot-Spring-与-3.0-加速应用性能的完美融合-GraalVM (bootstrap)

Boot-Spring-与-3.0-加速应用性能的完美融合-GraalVM (bootstrap)

在 2023 年,SpringBoot 3.0 的发布标志着 Spring 框架对 GraalVM 的全面支持。此支持对 Spring 技术栈来说是一项重大补充。 GraalVM 概述...

6-Spring-提供的四种弱小工具-远程接口调用神器 (6sp日常使用还能用多久)

6-Spring-提供的四种弱小工具-远程接口调用神器 (6sp日常使用还能用多久)

1.引见 Spring6是一个十分弱小的框架,它提供了许多工具和接口来简化远程接口调用。其中,WebClient、RestTemplate、HTTPInterface和RestClient是...

Spring-Webflux-Boot-虚构线程性能逊色于-深化比较 (springboot)

Spring-Webflux-Boot-虚构线程性能逊色于-深化比较 (springboot)

早上看到一篇关于SpringBoot虚构线程和Webflux性能对比的文章,感觉还不错。内容较长,抓重点给大家引见一下这篇文章的外围内容,繁难大家极速浏览。 测试场景 作者驳回了一个尽...

揭秘-的暗藏技艺-AOP-从概念到实用场景-Spring (神秘丂丂是什么意思)

揭秘-的暗藏技艺-AOP-从概念到实用场景-Spring (神秘丂丂是什么意思)

环境:Spring5.3.23 1.引见 当天看Spring文档看到这么一个常识点《ControlFlowPointcuts》都不好翻译 官网原文: Springcontr...