zoukankan      html  css  js  c++  java
  • springboot启动慢解决方法

    jdk的配置文件中,使用securerandom.source设置了熵源:

    cat /usr/java/jdk1.8.0_121/jre/lib/security/java.security
    
    securerandom.source=file:/dev/random

    可以看到默认值是:/dev/random
    所以程序启动后SecureRandom类会读取/dev/random以获取随机序列,这是一个同步操作。当熵池(entropy pool) 中没有足够的熵时,读取/dev/random就会造成阻塞,直到收集到了足够的熵,程序才会继续往下进行。
    (关于什么是/dev/random,可以查看 wiki的介绍


    解决方法是修改成非阻塞的熵源/dev/urandom
    可以修改java.security文件中的securerandom.source值,也可以使用参数java.security.egd

    java -jar app.jar -Djava.security.egd=file:/dev/./urandom

    至于为什么是/dev/./urandom,而不是/dev/urandom,这源于java的一个bug。大意是/dev/urandom在某些情况下可能还是最终会转换成调用/dev/random。所以为了保险起见,还是使用/dev/./urandom吧!

  • 相关阅读:
    android-6
    android-5
    android-购物商城
    安卓简易计算器
    安卓第四周作业
    安卓第一周作业
    第十五周作业
    第十三周作业
    第十三周上机练习
    第三次安卓作业
  • 原文地址:https://www.cnblogs.com/MarchThree/p/7520536.html
Copyright © 2011-2022 走看看