Node.js模块如何影响服务器带宽



我正在开发Express.js应用程序,我想使用Socket.io,但我担心使用这个模块(以及其他Node.js模块(可能会影响网络流量。需要发送到客户端浏览器的socket.io.js脚本超过215 KiB。如果网络可以支持1GiB/s,那么即使所有的网络带宽都只用于服务这一个文件,也只能支持每秒4800个左右的请求。我知道用户的浏览器会缓存这个文件,这样它就不需要在用户会话期间重新发送,而且我知道Express.js鼓励使用压缩中间件,这可以减少文件大小。然而,我想知道生产级系统可能会考虑哪些其他优化(如果有的话(。我确信这些脚本可以缩减为仅相关的功能,但我不确定是否会有任何显著的性能优势(尤其是这可能需要大量的时间/精力(。我并不担心带宽对";稳态";请求,但更多的是当请求/秒出现大幅峰值时。

我建议使用CDN,因为这将减少服务器的负载,而不是为服务器上的公共图书馆提供服务。

根据CDNPerf,使用最快的CDN(用于socket.io等(是:

  • jsDelivr-socket.io
  • cdnjs-socket.io

通过使用CDN,客户端现在将向他们请求您正在使用的任何公共库,从而减少流向服务器的流量。

最新更新