我試圖建立一個Spring /春天Boot- RESTful Web服務,春天RESTful Web服務 - 高容量的數據處理
它接受一個CSV 100萬行/列40各行中的文件作爲輸入(來自基於Angular的前端)並且將是同步調用。在進入其他屏幕之前,必須通知用戶上載狀態。所以,等待時間不能超過幾分鐘(比如5分鐘)。
這些行中的每一行都必須針對數據庫中的內容進行驗證,並且如果發現有效,則會將相同內容插入到數據庫中。總之,每一行可以是一個獨立的獨立交易。
你可以請建議什麼是最好的方法來實現這個?
當前遺留系統在存儲過程中實現相同的功能,這使得解決方案與數據庫緊密耦合,如果RDBMS需要隨時更改,這將是一個問題。
在異步Web服務調用中處理這些1百萬數據塊(比如20k)的任何方法?
春季批次?
存儲過程可能比上面兩個選項更適合和更好地執行任何機會(猜不到!)?
你能否請一些至少和存儲過程一樣好的方法以及如何基於建議的解決方案進行水平縮放。
你的API調用取決於API響應嗎? –
您可以實現彈簧批處理 - 使用塊處理和主從設置進行並行處理並批量更新它們(不同的失敗和成功記錄)。或將每個記錄存儲在臨時表中,然後調用過程來批量插入它們。 – surya
適當縮放網格大小,並有一個很好的例子,你可以參考http://www.mkyong.com/spring-batch/spring-batch-partitioning-example/ – surya