为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

C#
蝴蝶不菲 2022-10-23 13:53:32
在浪费任何钱之前,我需要更多经验的指导。请看我的场景。300 个客户端需要全天检查来自服务器的数据。每个客户数据将在不同的未知时间可用。每个客户端每天最多可以下载 30 次 5kb 的数据。重要的是每个客户在 5 分钟内检测到他们的可用数据。我不想强迫每个客户端设置静态 IP 或打开端口。因此,我相信将数据从服务器发送到客户端不是一种选择。我必须想出最合适的方式让客户端从服务器请求数据。我考虑过设置 300 个客户端每 3 到 5 分钟轮询一次可能的数据。每个客户端每天最多可以下载 30 次 5kb 的数据。他们不会在每次投票时下载数据。假设带宽和速度不是问题,并且我可以获得可升级的专用服务器;每 3 到 5 分钟同时连接 300 个客户端是否被视为激进轮询?预计每个客户端每天最多可下载 30 次 5kb 的数据。这种方法在网络和硬件资源方面是否不合理?有更好的方法吗?感谢您的时间。
查看完整描述

1 回答

?
临摹微笑

TA贡献1982条经验 获得超2个赞

它一点也不激进,每 3 到 5 分钟有 300 个客户端(假设它们按时间均匀分布)是每秒 1.6 个请求(3 分钟)或每秒 1 个请求(5 分钟),这在吞吐量方面算不了什么。

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

如果从服务器推送不可行,那么您考虑遵循的方法是可以的。

一种替代方法是使用“队列”,例如来自 Azure 服务总线的主题/订阅。对于这样一个简单的场景来说,这太过分了,但是,它在服务(服务器)和客户端之间提供了一个“适当的”可靠的异步通道,该通道几乎可以实时工作,而且好处是您将推迟所有过载以保持为此目的设计的平台的通信模式。


查看完整回答
反对 回复 2022-10-23
  • 1 回答
  • 0 关注
  • 83 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信