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

Is this server polling considered too aggressive?

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

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

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

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

  1. 每 3 到 5 分钟有 300 个客户端同时连接是否被视为主动轮询?
    • 每个客户每天最多下载 30 次 5kb 的数据。
  2. 这种做法在网络和硬件资源上是否不合理?
  3. 有没有更好的方法?

感谢您的宝贵时间。

它一点也不激进,每 3 到 5 分钟 300 个客户端(假设它们按时均匀分布)是每秒 1.6 个请求(3 分钟)或每秒 1 个请求(5 分钟)什么都没有关于吞吐量。

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

如果从服务器推送不可行,您考虑采用的方法是可以的。

一种替代方法是使用 'Queues',例如来自 Azure 服务总线的 Topics/Subscriptions。这对于这样一个简单的场景来说太过分了,但是,在服务(服务器)和近乎实时工作的客户端之间提供了一个 'proper' 可靠的异步通道,好处是您将推迟所有过载将通信模式保持在为此目的而设计的平台上。