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

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

admin7个月前 (05-06)数码83

在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-AOP-实现原理和应用-中的 (概念股股票)

概念-Spring-AOP-实现原理和应用-中的 (概念股股票)

什么是AOP? AOP(Aspect-Oriented Programming,面向切面编程)是一种编程范式,其主要目的是将横切关注点(cross-cutting concern)从主要业务...

如何在Spring名目中顺利性能MP-MyBatis (如何在springer上下载文献)

如何在Spring名目中顺利性能MP-MyBatis (如何在springer上下载文献)

在Spring名目中集成MP,须要启动以下性能: 1.引入依赖:在名目标pom.xml文件中参与MP相关依赖,例如:```xml<dependency><groupId&g...

事务传播行为-Spring-七种类型一览 (spring事务传播行为)

事务传播行为-Spring-七种类型一览 (spring事务传播行为)

简介 Spring 事务传播性是指在 Spring 环境中,当多个包含事务的方法嵌套调用时,每个事务方法如何处理事务上下文中的提交或回滚行为。 传播性行为 Spring 中定义了 7 种事...

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性能对比的文章,感觉还不错。内容较长,抓重点给大家引见一下这篇文章的外围内容,繁难大家极速浏览。 测试场景 作者驳回了一个尽...

Spring-Boot-Starter原理详解-b-b (springernature)

Spring-Boot-Starter原理详解-b-b (springernature)

SpringBoot Starter 是一种包含了一组特定功能和依赖关系的依赖项,旨在为特定的应用程序场景提供快速集成和开箱即用的功能。主要用于将常用的功能模块打包成一个可重用的依赖项,开发者只需...

使用Spring-Cloud和Java构建强大而灵活的微服务-十个实践案例 (使用spring框架的好处是什么)

使用Spring-Cloud和Java构建强大而灵活的微服务-十个实践案例 (使用spring框架的好处是什么)

在使用构建微服务时,许多人认为只要学习一些微服务设计模式就足够了,比如 CQRS、SAGA 或每个微服务一个数据库。虽然这是正确的,但同时学习一些通用的最佳实践也是很有意义的。本文分享一些最佳实践...