有一个需求是前端一次性请求 10 个接口,等 10 个接口全部请求完毕之后前端再解析。 但是发现 10 个接口中总是有几个接口过慢。差不多 10 秒钟,然后后端打日志,发现数据库请求加后端程序处理只用了 2 秒左右。于是查看前端 network 的时间,发现其余的 8 秒发现是花费在了 ttfb 上,查了一下 TTFB 指的是前端发起请求到后端接受第一个字节所需要的时间。
- 前端同时发起 10 个请求
- 后端数据库用的是 es,每个接口也会访问 mysql,要权限认证
- 后端总共耗时也差不多 2 秒
- 10 个接口只有 2-3 个接口 TTFB 时间长,需要 10 秒左右,其他接口 natwork 时间 2-3 秒就可以
那么问题就来了,这个 TTFB 是前端的原因还是后端的,会不会是 mysql 或者 es 多个访问阻塞了,或者是因为 nginx 配置,或许可能是服务器性能差?要怎么优化这个时间,有经验的大佬请回答下。 PS 我是前端,不太懂服务端这些 nginx 配置啥的