每 10000 秒拉取 5,3,1 个客户端与保持 websocket 连接的性能如何



给定 10000 个客户端,对 Web 服务器(Kestrel 上的 Signalr 和 ASPNET 核心)的要求最高

  1. 回答正常的 rest api get 请求(调用之间 5,3,1 秒)(查询字符串上的令牌指针,用于告诉它已经收到了哪些数据,如果等于最新的指针,则为 noop)
  2. 维护 websocket 连接,仅在数据更新时推送

让我们假设在两个示例中从存储中检索数据也是一个nooop,所以问题只是关于websockets与请求。

如果这 10000 个客户端是移动设备 - 什么需要最大的功能来获取数据?保持 websocket 打开或拉取数据?

您需要平衡的是连接成本与数据传输成本。

如果有 10000 个客户端,更新速度为每秒 5,3,1,您最好使用 web-socket,因为每个请求的服务器处理量较少,一旦初始化,最好通过每个客户端的已建立连接传输数据。

Websocket 不会像 http 在连接和断开连接时那样占用资源,并且在您的情况下还可以节省带宽。

最新更新