SpringCloud服务启动后,接口第一次请求很慢的优化历程
症状概述
服务启动后,请求任意接口,都很慢,响应时长达到2秒
而再次进行请求,响应很快,响应时长毫秒级。
初步诊断
很可能耗时资源在第一次接收到请求时才进行初始化
确定病因
上图为第一次请求时打印的日志,由此可知第一次请求时初始化了DataSource、Redis、Servlet
还有个网上找到的Ribbon优化,默认client是懒加载,第一次请求才会进行初始化,所以这里也会影响,需要进行优化
对症下药
DataSource
DataSourceConfig配置类中修改:应用启动时,进行初始化
@org.springframework.context.annotation.Bean(name = "dataSource",initMethod = "init",destroyMethod = "close")
public DruidDataSou