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