2016-02-24 42 views
0

我有一個Web應用程序,必須使用REST API獲取1000條記錄。每個記錄大約500個字節。REST API設計 - 獲取多個(1000)記錄

什麼是最好的辦法做到這一點,爲什麼?有沒有更好的方法來做到這一點?

1>一次取一條記錄。並行觸發1000個呼叫。

2>以20個羣組取值。並行觸發50個呼叫。

3>以100個組爲單位進行讀取並行觸發10個調用。

4>一起取出所有1000條記錄。

+0

取決於api的實現實際上在做什麼...... – Dima

+0

也許在程序員交流中發佈這個? – arisalexis

+0

請讓我們知道你正在尋找什麼更多的信息,以便我們可以嘗試更好地調整我們對這個問題的答案?否則,您可能需要考慮關閉問題或標記最佳答案,或者可能將其作爲推薦的@arisalexis在程序員交流平臺中發佈。 –

回答

1

正如@迪瑪在評論中所說,這取決於你想要做什麼。

記錄如何被消耗?

  • 它是一個後端過程來處理或編程通信編程?如果是這樣,那麼這取決於客戶收到處理的難度。是否需要很長時間來處理每條記錄?每條記錄1毫秒,或每條記錄100毫秒?這個選項完全取決於每個記錄可能的處理時間。

  • 是否有一個前端爲人類用戶使用?如果是這樣,批量請求將會有利於分頁結果等原因。在這種情況下,我會親自選擇2或3。

一般來說,根據記錄的絕對數量,我建議考慮批量請求(通過觸發更少的調用)。從啓發式的角度來看,你可能以這種方式獲得更好的整體網絡吞吐量。

如果您添加更多細節,我會很樂意更新我的答案,但在此之前,將軍必須這樣做!

0

最適合什麼情況?你想優化什麼?

我做了一些測試,但回想起類似的情況,稍微更大的有效載荷(圖像),我的目標是在高延遲設置(跨大陸)上有效地利用網絡。

我的結果是,在最小量的並行性(如3-4線程)後,網絡幾乎完全飽和。我們將它與具體的(專有的)基於UDP的傳輸協議進行了比較,並沒有發現可衡量的差異。

無論如何,它可能不是你正在尋找的,但有時有一個「啞」http端點是足夠好的。