问题描述:

发现,在访问任何一个接口后,接着的接口在短时间内访问速度都很正常。

始终是隔一段时间后的第一个接口访问速度很慢。


同样的jre、springboot在他的centos虚拟机上并未出现该问题,所以推测有可能是linux版本差异,或是安全策略配置问题,亦或是linux存在这么一个可以配置默认随机数获取算法的方式,有待深究。

解决方案:

1.

找到安装的jre目录,如jre/lib/security,然后修改java.security文件的如下:

securerandom.source=file:/dev./urandom

别人的服务器,不能乱调,还没试


2.

在启动时指定参数的方式,如下:

-Djava.security.egd=file:/dev/./urandom

但我设置了没用,具体原因不明。


3.

spring-boot-starter-parent从1.4.2版本升级到1.5.9版本

亲测有效,从1.5.10降到1.5.9


4.

打成 war 包部署到正常的 tomcat 上

暂时不尝试


5.


将内置Tomcat的改为undertow,未尝试

修改pom文件


<dependency>  <groupId>org.springframework.boot</groupId>  <artifactId>spring-boot-starter-web</artifactId>  <exclusions>   <exclusion>    <groupId>org.springframework.boot</groupId>    <artifactId>spring-boot-starter-tomcat</artifactId>   </exclusion>   <exclusion>    <groupId>org.springframework.boot</groupId>    <artifactId>spring-boot-starter-logging</artifactId>   </exclusion>  </exclusions> </dependency>   <dependency>  <groupId>org.springframework.boot</groupId>  <artifactId>spring-boot-starter-undertow</artifactId> </dependency>