、春RESTful Webサービス - 高容量のデータ処理私は春/春Boot- RESTfulなWebサービスを構築しようとしている
CSVは、各行が1万行/ 40列のファイル受け付け入力として(角度ベースのフロントエンドから)同期呼び出しになります。他の画面に進む前に、アップロードステータスを通知する必要があります。したがって、待ち時間は数分(例えば5分)を超えることはできません。
これらの行のそれぞれは、DB内のものと照合され、有効であると判明した場合、同じものがDBに挿入されます。要するに、各行は独立した独立したトランザクションにすることができます。
これを実装するにはどうすればよいでしょうか?
現在のレガシーシステムでは、ストアドプロシージャと同じ機能が実装されています。これにより、ソリューションがDBと密接に結びついています。これは、RDBMSを変更する必要がある場合に問題になります。
これらの100万のデータを非同期Webサービスコールでチャンク(たとえば20k)で処理するアプローチはありますか?
スプリングバッチ?
上記の2つのオプションよりもストアドプロシージャを適切に実行することができます(推測できません)。
少なくとも、ストアドプロシージャと同じ方法で、提案されたソリューションに基づいて水平方向にスケールする方法をお手伝いしてください。
API呼び出しはAPIの応答に依存していますか? –
春のバッチ使用チャンク処理とマスタスレーブ設定を並列処理に実装し、バッチ更新することができます(失敗と成功の記録では異なります)。一時テーブルにすべてのレコードを格納して、一括挿入するプロシージャを呼び出します。 – surya
グリッドサイズを適切に調整してください。http://www.mkyong.com/spring-batch/spring-batch-partitioning-example/ – surya