在浪費任何錢之前,我需要更多經驗的指導。請看我的場景。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 服務總線的主題/訂閱。對于這樣一個簡單的場景來說,這太過分了,但是,它在服務(服務器)和客戶端之間提供了一個“適當的”可靠的異步通道,該通道幾乎可以實時工作,而且好處是您將推遲所有過載以保持為此目的設計的平臺的通信模式。
- 1 回答
- 0 關注
- 110 瀏覽
添加回答
舉報
0/150
提交
取消