如何優(yōu)化你的 SpringBoot ?
戳上方藍字 “程序猿雜貨鋪” 關注我 并?置頂星標!
你的關注意義重大!
原文 |??https://dwz.cn/kr9Z6xq0
在SpringBoot的Web項目中,默認采用的是內(nèi)置Tomcat,當然也可以配置支持內(nèi)置的jetty,內(nèi)置有什么好處呢?方便微服務部署。
方便項目啟動,不需要下載Tomcat或者Jetty
線程數(shù)
超時時間
jvm優(yōu)化
server:這塊對tomcat進行了一個優(yōu)化配置,最大線程數(shù)是100,初始化線程是20,超時時間是5000ms
??tomcat:
????min-spare-threads:?20
????max-threads:?100
??connection-timeout:?5000
Jvm優(yōu)化
這塊主要不是談如何優(yōu)化,jvm優(yōu)化是一個需要場景化的,沒有什么太多特定參數(shù),一般來說在server端運行都會指定如下參數(shù)初始內(nèi)存和最大內(nèi)存基本會設置成一樣的,具體大小根據(jù)場景設置,-server是一個必須要用的參數(shù),至于收集器這些使用默認的就可以了,除非有特定需求。
1.使用-server模式
設置JVM使用server模式。64位JDK默認啟動該模式java?-server?-jar?springboot-1.0.jar
2.指定堆參數(shù)
這個根據(jù)服務器的內(nèi)存大小,來設置堆參數(shù)。-Xms :設置Java堆棧的初始化大小
-Xmx :設置最大的java堆大小
java?-server?-Xms512m?-Xmx768m??-jar?springboot-1.0.jar設置初始化堆內(nèi)存為512MB,最大為768MB。
3.遠程Debug
在服務器上將啟動參數(shù)修改為:java?-Djavax.net.debug=這個時候服務端遠程Debug模式開啟,端口號為8888。在IDEA中,點擊Edit Configuration按鈕。
ssl?-Xdebug?-Xnoagent?-Djava.compiler=
NONE?-Xrunjdwp:transport=
dt_socket,server=y,suspend=
n,address=8888?-jar?springboot-1.0.jar
出現(xiàn)彈窗,點擊+按鈕,找到Remote選項。
在【1】中填入Remote項目名稱,在【2】中填IP地址和端口號,在【3】選擇遠程調(diào)試的項目module,配置完成后點擊OK即可如果碰到連接超時的情況,很有可能服務器的防火墻的問題,舉例CentOs7,關閉防火墻systemctl?stop?firewalld.service?#停止firewall點擊debug按鈕,IDEA控制臺打印信息:
systemctl?disable?firewalld.service?#禁止firewall開機啟動
說明遠程調(diào)試成功。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.啟動服務,參數(shù)為:
java?-jar?-Djava.rmi.server.hostname=192.168.44.128?-ip為192.168.44.128,端口為911 。5.打開Jconsole,進行遠程連接,輸入IP和端口即可
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
點擊連接,經(jīng)過稍稍等待之后,即可完成連接,如下圖所示:
同理,JvisualVm的遠程連接是同樣的,啟動參數(shù)也是一樣。然后在本機JvisualVm輸入IP:PORT,即可進行遠程連接:如下圖所示:
相比較Jvisualvm功能更加強大一下,界面也更美觀~推薦閱讀
MYSQL 數(shù)據(jù)庫時間字段 INT,TIMESTAMP,DATETIME 性能效率比較Java 中如何修改兩個局部變量的值 ?Java 中的基本數(shù)據(jù)類型詳解

如果這篇文章對你有幫助
請幫忙轉(zhuǎn)發(fā),點個在看
評論
圖片
表情
