tomcat启动时间长达5分钟,一直以为是程序、数据库的问题,查了资料才知道根本原因是 SecureRandom这个jre的工具类的问题,Tomcat使用org.apache.catalina.util.SessionIdGeneratorBase.createSecureRandom类产生安全随机类SecureRandom的实例作为会话ID,SecureRandom generateSeed 使用/dev/random生成种子,但是/dev/random是一个阻塞数字生成器,如果它没有足够的随机数据提供,它就一直等,这迫使 JVM 等待。
解决方案
修改jdk安装路径 $JAVA_PATH/jre/lib/security/java.security
securerandom.source=file:/dev/random
修改为
securerandom.source=file:/dev/urandom