【问题标题】:How do Node.js modules affect server bandwidth?Node.js 模块如何影响服务器带宽?
【发布时间】:2021-01-14 18:30:02
【问题描述】:

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

【问题讨论】:

  • 从您的问题来看,听起来您自己在为 socket.io 脚本提供服务?您可以使用 CDN,以便客户端去其他地方获取脚本,例如 cdnjsjsdelivr,因为这会减少流向您服务器的网络流量。您也可以对您正在使用的所有库执行此操作
  • 谢谢!我认为这是最好的解决方案。

标签: node.js express server


【解决方案1】:

我建议使用 CDN,因为这将减少进入服务器的负载,而不是同时在服务器上提供公共库。

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

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

【讨论】:

    猜你喜欢
    • 2016-04-29
    • 2011-03-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-12
    • 2020-04-14
    • 1970-01-01
    相关资源
    最近更新 更多