随机数阻塞问题可能会导致 Tomcat 项目启动缓慢,可以用下面这条命令来测试能否使用 /dev/random 产生随机数:
head -n 1 /dev/random
如果系统可以立即显示返回值,就可以正常继续使用 /dev/random ,如果不能立即显示,可参考下边两个解决方案。
一、修改 java.security 文件
# <= Java 1.8# vim $JAVA_HOME/jre/lib/security/java.security# >= Java 11vim $JAVA_HOME/conf/security/java.security# java.security# securerandom.source=file:/dev/randomsecurerandom.source=file:/dev/./urandom
二、运行时配置
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
来源:慕课网
