SpringBoot系列: SpringBoot 启动慢的问题
SpringBoot 应用启动速度往往很快, 但在某些Linux 服务器上可能会很慢, 可能超过1分钟, 有时候甚至启动不起来.
下面过程耗时太长:
IdGeneratorBase: Creation of SecureRandom instance for session ID generation using [SHA1PRNG] took [140,108] milliseconds.
原因是SpringBoot在生成Session Id时候会使用 SecureRandom 这个jre工具类, 以生成足够安全的随机数. 最终会用到在Linux的 /dev/random 这个阻塞型数字生成器, 它的特点是使用鼠标和键盘以及磁盘信息来产生熵, 但对于Linux 服务器, 鼠标和键盘活动可能会很少, 就有可能阻塞整个SpringBoot启动.
解决办法是, 替换 /dev/random 为 /dev/./urandom. 具体为:
方法一: 适合外置tomcat:
在tomcat 的 catalina.sh 中增加下面的 JAVA_OPTS:
-Djava.security.egd=file:/dev/./urandom
方法二: 适合外置或内置tomcat:
修改 $JAVA_PATH/jre/lib/security/java.security 文件,
将 securerandom.source=file:/dev/random 替换为下面一行:
securerandom.source=file:/dev/./urandom
SpringBoot系列: SpringBoot 启动慢的问题相关推荐
- SpringBoot系列-- SpringBoot中使用lombok简化开发
目录 1. 项目环境 2.添加依赖和安装插件 3. 实体类常用注解总结 3.1 @Setter.@Getter 3.1.1 注解在属性上 3.1.2 注解在类上 3.1.3 注解对静态属性和final ...
- mybatis generator生成example_[Springboot系列] SpringBoot与Mybatis结合
本文作者:cuifuan Mybatis 是一个持久层ORM框架,负责Java与数据库数据交互,也可以简易理解为中介,相对于它,还有个中介是hibernate,不过在mybatis中sql语句的灵活性 ...
- SpringBoot 2.0 系列005 --启动实战之SpringApplication应用
为什么80%的码农都做不了架构师?>>> SpringBoot 2.0 系列005 --启动实战之SpringApplication应用 2.X 官方示例 注意是只使用了@En ...
- SpringBoot系列三:SpringBoot基本概念(统一父 pom 管理、SpringBoot 代码测试、启动注解分析、配置访问路径、使用内置对象、项目打包发布)...
声明:本文来源于MLDN培训视频的课堂笔记,写在这里只是为了方便查阅. 1.了解SpringBoot的基本概念 2.具体内容 在之前所建立的 SpringBoot 项目只是根据官方文档实现的一个基础程 ...
- 服务 自动启动参数_使用ansible部署springboot系列02服务托管与jvm参数管理
@[toc] 这是使用ansible部署springboot系列 的第二篇文章. 本系列文章介绍基于springboot的java程序如何自动化部署.该CI/CD方案基于Jenkins+Ansible ...
- SpringBoot 雪花算法生成商品订单号【SpringBoot系列13】
SpringCloud 大型系列课程正在制作中,欢迎大家关注与提意见. 程序员每天的CV 与 板砖,也要知其所以然,本系列课程可以帮助初学者学习 SpringBooot 项目开发 与 SpringCl ...
- Springboot 系列(十一)使用 Mybatis(结合自动化生成插件) 访问数据库
1. Springboot mybatis 介绍 MyBatis 是一款优秀的持久层框架,它支持定制化 SQL.存储过程以及高级映射.MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数获取 ...
- Springboot 系列(十二)使用 Mybatis 集成 pagehelper 分页插件和 mapper 插件
前言 在 Springboot 系列文章第十一篇里(使用 Mybatis(自动生成插件) 访问数据库),实验了 Springboot 结合 Mybatis 以及 Mybatis-generator 生 ...
- SpringBoot 整合 Spring Security 实现安全认证【SpringBoot系列9】
SpringCloud 大型系列课程正在制作中,欢迎大家关注与提意见. 程序员每天的CV 与 板砖,也要知其所以然,本系列课程可以帮助初学者学习 SpringBooot 项目开发 与 SpringCl ...
最新文章
- Linux下部署开源版“禅道”项目管理系统
- linux 内核编译错误 error: conflicting types for ‘syscall_trace_enter’
- 软件工程:需求分析的20条法则
- 飞鸽 bind()错误=10048
- 基于用户击键特征的身份鉴别系统
- linux系统中存放用户账号信息的文件是,信息安全技术题库:Linux系统中,用户登录密码的hash是存放在()文件中的。...
- mysql group by cube_SparkSQL 中group by、grouping sets、rollup和cube方法详解
- tomcat使用安全及CVE-2017-12615
- 带你了解电机驱动板的四大分类
- PHP+MYSQL【学生信息管理系统】(极简版)
- NK细胞治疗肿瘤相关进展概述
- 树形DP(放置街灯,uva 10859)
- 数据库基础知识及概念
- Touch ID身份认证
- 开发一个标题为Flipflop的游戏应用程序
- makefile传字符串给c语言,makefile终极奥义
- css中英文自动换行问题
- 【硬币识别】形态学硬币计数【含Matlab源码 683期】
- 快手去水印解析获取源标题、作者、头像、封面图以及源视频下载地址
- 道格拉斯普克(Douglas-Peuker)算法python实现
热门文章
- 如何计算MP3总时长的问题(二)
- 贝叶斯多元Logistics回归理论基础
- UA SIE545 优化理论基础0 优化建模3 线性回归的参数估计问题
- VC++ 常用编程技巧总结
- dp_c_区间dp_g
- python学习日记day2
- WIN7无法记住远程登录密码
- CentOS6.5菜鸟之旅:安装VirtualBox4.3
- 安装32位mysql报错_在CentOS中安装32位或64位MySql报错error: Failed dependencies解决办法...
- mysql query plan_MySQL Execution Plan--IN查询计划(2)