软件技术学习笔记

个人博客,记录软件技术与程序员的点点滴滴。

NodeJS网络调用链优化

为了提升用户体验,前端首屏使用NodeJS SSR。为了容易观测多个环境NodeJS层的网络调用链与性能,我们加入了Jaeger链路追踪,这也是微服务开发中常用的手段。

通过Jaeger UI观察,我们很容易发现首屏SSR与API转发有以下问题:

  1. 多段接口依次执行,有先后次序依赖,没有发挥并发请求的优势。
  2. 未区分用户类型,有多余的网络请求。
  3. 转发的API请求,也请求多余的用户信息等。

如果使用以前打日志的方式,缺少可视化的分析手段,定位问题的周期比较长。处理以上的问题之后,首屏SSR与API转发的网络性能提升50%,给后端的请求数分别减少3/8与3/4。在并发量比较大的情况下,可以很大程度上减轻服务器的压力。

目前,用户量比较少,在云上后端接口返回在50ms时,首屏SSR可以在100ms内处理完成(不算用户到服务器的网络延时)。这也是我目前性能优化的极限了。