此服务器轮询是否过于激进?

问题描述 投票:0回答:1

在浪费任何钱之前,我需要更多经验的指导。请看我的情景。

  • 300个客户端需要全天检查服务器中的数据。
  • 每个客户数据将在不同的未知时间提供。
  • 每个客户端每天最多可下载5kb数据30次。
  • 每个客户端在5分钟内检测到可用数据非常重要。

我不想强制每个客户端设置静态IP或开放端口。因此,我认为从服务器向客户端发送数据不是一种选择。我必须为客户提供最合适的方式来从服务器请求数据。

我考虑过设置300个客户端,每隔3到5分钟轮询一次他们可能的数据。每个客户端每天最多可下载5kb数据30次。他们不会每次投票都下载数据。

假设带宽和速度不是问题,我可以获得可升级的专用服务器;

  1. 300个客户是否同时每3到5分钟连接一次,认为是积极的投票? 预计每个客户每天最多可下载5kb数据。
  2. 这种方法在网络和硬件资源方面是否不合理?
  3. 有更好的方法吗?

感谢您的时间。

c# web-services client-server polling
1个回答
1
投票

它根本不具有攻击性,每3到5分钟300个客户端(假设它们按时均匀分布)是1.6请求每秒(3分钟)或1个每秒请求(5分钟),这与吞吐量无关。

考虑到您每个客户端只传输(最终)5KB数据,这对硬件来说不是什么大问题,或者会在任何地方造成瓶颈。

如果从服务器推送不在图片中,那么您想要遵循的方法就可以了。

另一种方法是使用“队列”,例如Azure Service Bus中的主题/订阅。这对于这样一个简单的场景来说太过分了,但是,它在服务(服务器)和近乎实时工作的客户端之间提供了“适当的”可靠的异步通道,并且奖励是你将推迟所有超载以保持通信模式到为此目的设计的平台。

© www.soinside.com 2019 - 2024. All rights reserved.