[英]REST API Design - Fetching multiple(1000) records
我有一個Web應用程序,必須使用REST API提取1000條記錄。 每條記錄約為500個字節。
以下是實現此目的的最佳方法是什么,為什么? 還有另一種更好的方法嗎?
1>一次獲取一個記錄。 並行觸發1000個呼叫。
2>以20為一組獲取。並行觸發50個調用。
3>以100為一組提取。並行觸發10個調用。
4>一起提取所有1000條記錄。
正如@Dima在評論中所說,這實際上取決於您要執行的操作。
記錄如何被使用?
是要處理的程序還是要進行程序編程的后端程序? 如果是這樣,則取決於客戶收到后處理的難度。 他們需要很長時間來處理每條記錄嗎? 每條記錄1毫秒還是每條記錄100毫秒? 此選項完全取決於每個記錄可能的處理時間。
有沒有前端供人類用戶使用? 如果是這樣,由於分頁結果之類的原因,批量請求將是很好的。 在這種情況下,我個人會選擇選項2或3。
但總的來說,根據記錄的數量,我建議考慮批量請求(通過觸發較少的調用)。 試探性地講,您可能會以這種方式獲得更好的整體網絡吞吐量。
如果您添加更多細節,我會很樂意更新我的答案,但是在那之前,一般將不得不做!
最適合什么情況? 您要優化什么?
我在類似的情況下做了一些測試,有效載荷(圖像)稍大,我的目標是在高延遲設置(跨大洲)上有效地利用網絡。
我的結果是,經過最少的並行處理(例如3-4個線程),網絡幾乎完全飽和。 我們將其與基於UDP的特定(專有)傳輸協議進行了比較,並且沒有可測量的差異。
無論如何,它可能不是您要查找的內容,但有時具有一個“啞” http端點就足夠了。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.