原因
tomcat启动时为提高安全性会使用 /dev/random 获取随机数并通过SHA1算法生成一个密钥
/dev/random 会根据噪音产生随机数,如果噪音不够它就会阻塞。Linux是通过I/O,键盘终端、内存使用量、CPU利用率等方式来收集噪音的,如果噪音不够生成随机数的时候就会被阻塞。
解决
将$JAVA_HOME/jre/lib/security/ 目录下的 Java.security 文件中的 securerandom.source=file:/dev/random 改为
securerandom.source=file:/dev/urandom
即可
实际路径参考(本人服务器jdk安装目录):/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.222.b10-0.el7_6.x86_64/jre/lib/security