springboot项目第一次登陆非常慢(SecureRandom 非常慢解决办法)

    科技2022-08-01  121

    背景:

    springboot项目在本地测试时用户登录就很快,在springboot项目放到服务器上使用java -jar运行后,发现第一次用户登录时,需要好长时间(3分钟以上)或者要登录好多次才能登录成功。于是查看了日志和网上查找资料。

    根本原因是

    有两种解决方案:

    在Tomcat环境中解决: 可以通过配置 JRE 使用非阻塞的 Entropy Source: 在 catalina.sh 中加入这么一行:-Djava.security.egd=file:/dev/./urandom 即可。在 JVM 环境中解决: 打开 $JAVA_PATH/jre/lib/security/java.security 这个文件,找到下面的内容: securerandom.source=file:/dev/random

    替换成:

    securerandom.source=file:/dev/./urandom

    这里值为何要在 dev 和 random 之间加一个点呢?有的认为是jdk的bug

    在 JDK 的 java.security 文件里,如下:

    Processed: 0.009, SQL: 8