背景: springboot 应用在本机启动耗时 27 秒, 部署到 Linux 服务器启动耗时却需要 70 秒
原因: 随机数种子生成慢导致的
解决: 将阻塞式熵池修改为非阻塞式熵池
第一种方式
编辑 jdk 中的随机数策略
vim $JAVA_HOME/jre/lib/security/java.security
# securerandom.source=file:/dev/random
securerandom.source=file:/dev/./urandom
第二种方式
在启动 jar 时, 指定随机数策略
java -Djava.security.egd=file:/dev/./urandom xx.jar
结束语:
需要注意的是指定的配置值是 file:/dev/./urandom
而不是 file:/dev/urandom
(file:/dev/urandom
可能仍然无法解决启动缓慢的问题)