spring-boot每天第一次请求数据特别慢,之后速度正常,请大神帮助!

jdyyi 2017-08-04 08:43:46
问题现象:调取一个接口每天第一或前几次返回结果超时(超过30s),之后会正常返回结果(1s左右)
该接口内部通过rpc方式调取接口获得appkey ,通过http方式调取接口获取MD5值。

第一次请求
2017-06-17 03:29:09,170 INFO [com.***.***.developer.service.DeveloperService] - <start param>
2017-06-17 03:29:17,466 INFO [com.***.***.developer.service.DeveloperService] - <start bas>
2017-06-17 03:30:03,499 INFO [access] - <consume 82169ms for request:[DeveloperController-createMd5keyAppkeyAppsecret-{{"developerId":55,"appName":"juhe","packageName":"com.11111111111111111111111111","callbackUrl":null,"partnerCode":"1","partnerName":"1aaaaaaa","appType":1,"appDesc":"test1","deviceType":1}}]>
第二次请求
2017-06-17 03:32:02,909 INFO [access] - <consume 8023ms for request:[DeveloperController-createMd5keyAppkeyAppsecret-{{"developerId":55,"appName":"juhue","packageName":"com.11111111111111111111111111","callbackUrl":null,"partnerCode":"1","partnerName":"1aaaaaaa","appType":1,"appDesc":"test1","deviceType":1}}]>
第三次请求
2017-06-17 03:32:39,665 INFO [access] - <consume 340ms for request:[DeveloperController-createMd5keyAppkeyAppsecret-{{"developerId":55,"appName":"juhe","packageName":"com.11111111111111111111111111","callbackUrl":null,"partnerCode":"1","partnerName":"1aaaaaaa","appType":1,"appDesc":"test1","deviceType":1}}]>

这是前几次请求create-md5key-appkey-appsecret接口的响应时间,第一次耗时82s 第二次耗时8s,第三次耗时0.3s。且如第一次日志:
2017-06-17 03:29:09,170 INFO [com.***.***.developer.service.DeveloperService] - <start param>
2017-06-17 03:29:17,466 INFO [com.***.***.developer.service.DeveloperService] - <start bas>
耗时8s,但是代码只执行以下拼参数操作:
logger.info("start param")
AppQueryParam param = new AppQueryParam()
param.appDesc = createKeysReq.appDesc
param.appname = createKeysReq.appName
param.apppackagename = createKeysReq.packageName
param.developerid = createKeysReq.developerId
logger.info("start bas")
没有任何外部连接。都会耗时8s之久!

后尝试连接该网元其他接口发现,如get-developerlist-with-distributor接口:
2017-06-23 06:43:32,473 INFO [access] - <consume 20149ms for request:[DeveloperController-getAllDeveloperWithDistributor-]>
第一请求也会达到20s之久。

定位:
首先服务器负载不高,且其他服务器可复现,不是环境原因。
抓包显示其他网元返回数据速度正常,不是其他网元原因。
该网元其他接口也会慢只是没create-md5key-appkey-appsecret接口这么严重(原因该接口业务相对复杂,又调取其他两个网元),不是特殊接口原因。
连接的都是oracle数据库,不是mysql八小时原因。
且获取正常响应之后,尝试重启,重装rpm包都不会使问题重现。

怀疑架构原因,各位遇到过吗?求教各位大神!
...全文
4959 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
bill74s 2020-03-23
  • 打赏
  • 举报
回复 1
securerandom.source=file:/dev/random
jdyyi 2017-08-24
  • 打赏
  • 举报
回复
引用 4 楼 JJYYyibanhua 的回复:
系统有没有涉及 zookeeper ,懒加载,缓存 机制 之类的
spring-boot工程,框架使用上应该没什么问题,groovy 与 java相互调用会产生这种现象吗?按理讲最后编译后都是class文件啊
jdyyi 2017-08-24
  • 打赏
  • 举报
回复
引用 3 楼 tianfang 的回复:
该网元其他接口也会慢只是没create-md5key-appkey-appsecret接口这么严重(原因该接口业务相对复杂,又调取其他两个网元),不是特殊接口原因。 多重调用,可以试试测试一下其他接口时间
groovy 与 java相互调用会产生吗?有什么注意事项吗?今天把groovy部分用java重新实现,问题没有复现,但还需要观察。
kobe8free 2017-08-23
  • 打赏
  • 举报
回复
系统有没有涉及 zookeeper ,懒加载,缓存 机制 之类的
tianfang 2017-08-23
  • 打赏
  • 举报
回复
该网元其他接口也会慢只是没create-md5key-appkey-appsecret接口这么严重(原因该接口业务相对复杂,又调取其他两个网元),不是特殊接口原因。 多重调用,可以试试测试一下其他接口时间
jdyyi 2017-08-23
  • 打赏
  • 举报
回复
引用 1 楼 tianfang 的回复:
没有解决方案之前,可以采用定时任务,没分钟调用一次,
之前遇到过吗?
open_yu 2017-08-23
  • 打赏
  • 举报
回复
好高端,貌似看懂一点点
tianfang 2017-08-07
  • 打赏
  • 举报
回复
没有解决方案之前,可以采用定时任务,没分钟调用一次,

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧