在我們的 spring boot 應(yīng)用程序中,我們出于某種目的調(diào)用外部 API,它返回大約20mb 的JSON 數(shù)據(jù)作為響應(yīng)。收到響應(yīng)后,我們使用 ObjectMapper 將響應(yīng)映射到 POJO。我們正在使用 RestTemplate 調(diào)用 API 并接收響應(yīng)。在 Spring 引導應(yīng)用程序中處理大型響應(yīng)數(shù)據(jù)而不會出現(xiàn)內(nèi)存問題的最佳實踐是什么?謝謝
1 回答

蕭十郎
TA貢獻1815條經(jīng)驗 獲得超13個贊
我想說有兩種好的方法:
避免使用返回過多信息的 API。就我個人而言,我認為 REST 端點應(yīng)該遵循我們用于代碼的相同規(guī)則,例如“單一職責原則”或“關(guān)注點分離”。示例:與其使用返回“完整目錄”(包含所有目錄條目的所有詳細信息)的 API,不如使用兩個 API:一個僅檢索目錄中所有條目的 ID/名稱,另一個返回所有詳細信息一個(或多個)條目。
或者,正如用戶Antoniosss在評論中所建議的那樣:看看您是否可以避免使用“完整”響應(yīng),而是使用某種基于流的解決方案。
但話雖如此:當您的要求確實是通過一次調(diào)用返回所有數(shù)據(jù)時,您無能為力。您可能會考慮不使用對象映射來獲得完整的響應(yīng)。
添加回答
舉報
0/150
提交
取消