Spring Boot工程在服务器上启动缓慢,开始的时候以为是代码问题,但是本地Develop模式是正常。
解决方法是修改成非阻塞的熵源/dev/urandom
。
可以使用参数java.security.egd
:
java -jar app.jar -Djava.security.egd=file:/dev/./urandom
至于为什么是/dev/./urandom
,而不是/dev/urandom
,这源于java的一个bug。大意是/dev/urandom
在某些情况下可能还是最终会转换成调用/dev/random
。所以为了保险起见,还是使用/dev/./urandom
吧!
但是测试发现,还是无效。
最终解决方案,修改$JAVA_HOME/jre/lib/security/java.security:
vim
$JAVA_HOME/jre/lib/security/java.security
|
找到 securerandom.source=file:/dev/random
改为 securerandom.source=file:/dev/./urandom
保存,然后再启动就解决了。