如何解决页面请求接口大规模并发问题

如何解决页面请求接口大规模并发问题, 不仅仅是包含了接口并发, 还有前端资源下载的请求并发。

应该说这是一个话题讨论了;

个人认为可以从以下几个方面来考虑如何解决这个并发问题:

  1. 后端优化:可以对接口进行优化,采用缓存技术,对数据进行预处理,减少数据库操作等。使用集群技术,将请求分散到不同的服务器上,提高并发量。另外可以使用反向代理、负载均衡等技术,分担服务器压力。

  2. 做 BFF 聚合:把所有首屏需要依赖的接口, 利用服务中间层给聚合为一个接口。

  3. CDN加速:使用CDN缓存技术可以有效减少服务器请求压力,提高网站访问速度。CDN缓存可以将接口的数据存储在缓存服务器中,减少对原始服务器的访问,加速数据传输速度。

  4. 使用 WebSocket:使用 WebSocket 可以建立一个持久的连接,避免反复连接请求。WebSocket 可以实现双向通信,大幅降低服务器响应时间。

  5. 使用 HTTP2 及其以上版本, 使用多路复用。

  6. 使用浏览器缓存技术:强缓存、协商缓存、离线缓存、Service Worker 缓存 等方向。

  7. 聚合一定量的静态资源: 比如提取页面公用复用部分代码打包到一个文件里面、对图片进行雪碧图处理, 多个图片只下载一个图片。

  8. 采用微前端工程架构: 只是对当前访问页面的静态资源进行下载, 而不是下载整站静态资源。

  9. 使用服务端渲染技术: 从服务端把页面首屏直接渲染好返回, 就可以避免掉首屏需要的数据再做额外加载和执行。