将相同的小负载推送到大量客户端时的服务器负载
Server load when pushing the same small payload to a very large amounts of clients
我想知道向大量客户端发送相同的小(<100B)负载而不是为服务器资源支付银行费用的最佳策略是什么。
我正在尝试创建一个 API 将多个媒体播放器同步到一个源,以便通过 http 推送异步数据来观看派对。我不需要对客户端进行身份验证并且数据不敏感。每个人的有效负载都是相同的,而且非常小~20-40 unicode 字符。我希望有效负载能够每 2-3 秒更新一次,但我预计中值更新每 30-60 秒一次。我的局限是我希望能够同时为多达一百万的用户提供服务并且免费使用。
我不确定如何平衡服务器资源的成本和大量快速更新客户端的可能性的高性能。是否有任何资源可以帮助我了解我的用例中服务器 cost/performance 的平衡?从技术角度解决这个问题的最佳方法是什么?
所以 websockets 是不可能的,因为流数据和保持会话是昂贵的,对吧? AJAX 推送是处理它的最轻量级方法吗?每个人的有效负载都相同这一事实如何影响减轻负载的可能策略?缺少授权会极大地影响负载吗? P2P不行吗?
最好的方法是使用 websockets
https://socket.io/ 将是一个很好的起点,
或https://developer.mozilla.org/en-US/docs/Web/API/WebSockets_API
另一种方法是使用 AJAX(正如您所提到的),但这会在每次请求时携带整个 HTTP 协议数据,使您的有效载荷加倍(如果它那么小)。
所以通过 websocket 的二进制数据似乎是更好的解决方案。
我想知道向大量客户端发送相同的小(<100B)负载而不是为服务器资源支付银行费用的最佳策略是什么。
我正在尝试创建一个 API 将多个媒体播放器同步到一个源,以便通过 http 推送异步数据来观看派对。我不需要对客户端进行身份验证并且数据不敏感。每个人的有效负载都是相同的,而且非常小~20-40 unicode 字符。我希望有效负载能够每 2-3 秒更新一次,但我预计中值更新每 30-60 秒一次。我的局限是我希望能够同时为多达一百万的用户提供服务并且免费使用。
我不确定如何平衡服务器资源的成本和大量快速更新客户端的可能性的高性能。是否有任何资源可以帮助我了解我的用例中服务器 cost/performance 的平衡?从技术角度解决这个问题的最佳方法是什么?
所以 websockets 是不可能的,因为流数据和保持会话是昂贵的,对吧? AJAX 推送是处理它的最轻量级方法吗?每个人的有效负载都相同这一事实如何影响减轻负载的可能策略?缺少授权会极大地影响负载吗? P2P不行吗?
最好的方法是使用 websockets
https://socket.io/ 将是一个很好的起点,
或https://developer.mozilla.org/en-US/docs/Web/API/WebSockets_API
另一种方法是使用 AJAX(正如您所提到的),但这会在每次请求时携带整个 HTTP 协议数据,使您的有效载荷加倍(如果它那么小)。
所以通过 websocket 的二进制数据似乎是更好的解决方案。