优化springboot

介绍

在SpringBoot的Web项目中,默认采用的是内置Tomcat,当然也可以配置支持内置的jetty,内置有什么好处呢? 
1. 方便微服务部署。 
2. 方便项目启动,不需要下载Tomcat或者Jetty

针对目前的容器优化,目前来说没有太多地方,需要考虑如下几个点

  1. 线程数
  2. 超时时间
  3. jvm优化

针对上述的优化点来说,首先线程数是一个重点,初始线程数和最大线程数,初始线程数保障启动的时候,如果有大量用户访问,能够很稳定的接受请求, 
而最大线程数量用来保证系统的稳定性,而超时时间用来保障连接数不容易被压垮,如果大批量的请求过来,延迟比较高,不容易把线程打满。这种情况在生产中是比较常见的 
一旦网络不稳定,宁愿丢包也不愿意把机器压垮。 
jvm优化一般来说没有太多场景,无非就是加大初始的堆,和最大限制堆,当然也不是无限增大,根据的情况进快速开始

 

在spring boot配置文件中application.yml,添加以下配置

1

2

3

4

5

server:

  tomcat:

    min-spare-threads: 20

    max-threads: 100

  connection-timeout: 5000

 这块对tomcat进行了一个优化配置,最大线程数是100,初始化线程是20,超时时间是5000ms

 Jvm优化

这块主要不是谈如何优化,jvm优化是一个需要场景化的,没有什么太多特定参数,一般来说在server端运行都会指定如下参数 
初始内存和最大内存基本会设置成一样的,具体大小根据场景设置,-server是一个必须要用的参数, 
至于收集器这些使用默认的就可以了,除非有特定需求。

1.使用-server模式

设置JVM使用server模式。64位JDK默认启动该模式

java -server -jar springboot-1.0.jar

2.指定堆参数

这个根据服务器的内存大小,来设置堆参数。

-Xms :设置Java堆栈的初始化大小
-Xmx :设置最大的java堆大小

1

java -server -Xms512m -Xmx768m  -jar springboot-1.0.jar

 设置初始化堆内存为512MB,最大为768MB。

3.远程Debug

在服务器上将启动参数修改为:

java -Djavax.net.debug=ssl -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8888 -jar springboot-1.0.jar

 

这个时候服务端远程Debug模式开启,端口号为8888。

在IDEA中,点击Edit Configuration按钮。

出现弹窗,点击+按钮,找到Remote选项。

 

在【1】中填入Remote项目名称,在【2】中填IP地址和端口号,在【3】选择远程调试的项目module,配置完成后点击OK即可

如果碰到连接超时的情况,很有可能服务器的防火墙的问题,举例CentOs7,关闭防火墙

systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service #禁止firewall开机启动

 

点击debug按钮,IDEA控制台打印信息:

说明远程调试成功。

 

JVM工具远程连接

jconsole与Jvisualvm远程连接

通常我们的web服务都输部署在服务器上的,在window使用jconsole是很方便的,相对于Linux就有一些麻烦了,需要进行一些设置。

1.查看hostname,首先使用

hostname -i

 

 查看,服务器的hostname为127.0.0.1,这个是不对的,需要进行修改

2.修改hostname

修改/etc/hosts文件,将其第一行的“127.0.0.1  localhost.localdomain localhost”,修改为:“192.168.44.128  localhost.localdomain localhost”.“192.168.44.128”为实际的服务器的IP地

3.重启Linux,在服务器上输入hostname -i,查看实际设置的IP地址是否为你设置的

4.启动服务,参数为:

java -jar -Djava.rmi.server.hostname=192.168.44.128 -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=911 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false jantent-1.0-SNAPSHOT.jar

 

ip为192.168.44.128,端口为911 。

5.打开Jconsole,进行远程连接,输入IP和端口即可

点击连接,经过稍稍等待之后,即可完成连接,如下图所示:

 

 同理,JvisualVm的远程连接是同样的,启动参数也是一样.

然后在本机JvisualVm输入IP:PORT,即可进行远程连接:如下图所示:

相比较Jvisualvm功能更加强大一下,界面也更美观

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring Boot 是一个非常流行的 Java Web 开发框架,但是在启动速度方面可能会有所欠缺,特别是在大型应用程序中。以下是一些优化 Spring Boot 启动速度的方法: 1. 减少依赖:Spring Boot 的自动配置机制会根据应用程序的依赖关系自动配置应用程序,但是如果依赖项过多,自动配置的过程可能会变得缓慢。因此,您可以尝试减少应用程序的依赖项,只保留必要的依赖项。 2. 开启 AOT 编译:AOT(Ahead of Time)编译器可以将应用程序的字节码编译为本机机器码,从而提高应用程序的启动速度。您可以使用 GraalVM 等工具来开启 AOT 编译。 3. 使用缓存:Spring Boot 会在启动时扫描应用程序的类路径,并创建必要的 Bean。您可以使用 Spring Boot 的缓存机制来缓存一些 Bean,从而避免重复创建。 4. 使用懒加载:懒加载是一种延迟初始化的机制,可以减少启动时的资源消耗。您可以将某些 Bean 配置为懒加载,只有在需要时才会被创建。 5. 禁用某些特性:Spring Boot 提供了很多特性,例如自动配置、自动扫描等,但是这些特性可能会影响启动速度。您可以禁用某些特性,从而提高启动速度。 6. 使用 Profile:Spring Boot 允许您使用 Profile 来定义不同的配置环境。您可以通过设置不同的 Profile 来启用或禁用某些特性,从而优化启动速度。 总之,优化 Spring Boot 启动速度需要综合考虑应用程序的特点和业务需求,选择适合的优化方法。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值