将项目部署到linux系统,tomcat启动的时候发现非常缓慢,查看日志发现下图耗费了很长的时间。
Tomcat 使用 SHA1PRNG 算法是基于 SHA-1 算法实现且保密性较强的伪随机数生成器
在本地windows系统启动的时候并没有这个问题。
解决方法:
1. 修改jvm环境
打开 $JAVA_PATH/jre/lib/security/java.security 这个文件,找到下面的内容:
securerandom.source=file:/dev/random
替换成:
securerandom.source=file:/dev/./urandom
2. 修改Tomcat环境配置
可以通过配置 JRE 使用非阻塞的 Entropy Source:
在 catalina.sh 中加入这么一行:-Djava.security.egd=file:/dev/./urandom 即可。
值得注意的是在dev和urandom中间要加一个点,好像是jdk的一个bug,在测试的时候不加这个点是没有效果的。