随机数阻塞问题可能会导致 Tomcat 项目启动缓慢,可以用下面这条命令来测试能否使用 /dev/random 产生随机数:

    1. head -n 1 /dev/random

    如果系统可以立即显示返回值,就可以正常继续使用 /dev/random ,如果不能立即显示,可参考下边两个解决方案。

    一、修改 java.security 文件

    1. # <= Java 1.8
    2. # vim $JAVA_HOME/jre/lib/security/java.security
    3. # >= Java 11
    4. vim $JAVA_HOME/conf/security/java.security
    5. # java.security
    6. # securerandom.source=file:/dev/random
    7. securerandom.source=file:/dev/./urandom

    二、运行时配置

    1. java -Djava.security.egd=file:/dev/./urandom -jar yourApplication.jar

    至于为什么是/dev/./urandom,而不是/dev/urandom,这源于java的一个bug。大意是/dev/urandom在某些情况下可能还是最终会转换成调用/dev/random。所以为了保险起见,还是使用/dev/./urandom吧!

    作者:时间丶思考

    链接:https://www.imooc.com/article/23782

    来源:慕课网