javascript
SpringBoot系列: SpringBoot 启动慢的问题
SpringBoot 應用啟動速度往往很快, 但在某些Linux 服務器上可能會很慢, 可能超過1分鐘, 有時候甚至啟動不起來.
下面過程耗時太長:
IdGeneratorBase: Creation of SecureRandom instance for session ID generation using [SHA1PRNG] took [140,108] milliseconds.
原因是SpringBoot在生成Session Id時候會使用 SecureRandom 這個jre工具類, 以生成足夠安全的隨機數(shù). 最終會用到在Linux的 /dev/random 這個阻塞型數(shù)字生成器, 它的特點是使用鼠標和鍵盤以及磁盤信息來產生熵, 但對于Linux 服務器, 鼠標和鍵盤活動可能會很少, 就有可能阻塞整個SpringBoot啟動.
解決辦法是, 替換 /dev/random 為 /dev/./urandom. 具體為:
方法一: 適合外置tomcat:
在tomcat 的 catalina.sh 中增加下面的 JAVA_OPTS:
-Djava.security.egd=file:/dev/./urandom
方法二: 適合外置或內置tomcat:
修改 $JAVA_PATH/jre/lib/security/java.security 文件,
將 securerandom.source=file:/dev/random 替換為下面一行:
securerandom.source=file:/dev/./urandom
總結
以上是生活随笔為你收集整理的SpringBoot系列: SpringBoot 启动慢的问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 业界 | 复杂出行场景下,滴滴如何将AI
- 下一篇: 03、Swagger2和Springmv