Spring Batch 基本的批處理指導原則
阿新 • • 發佈:2019-01-13
下面是一些關鍵的指導原則,可以在構批量處理解決方案可以參考:
- 請記住,通常皮臉處理體系結構將會影響線上應用的體系結構,同時反過來也是一樣的。在你為批量任務和線上應用進行設計架構和環境的時候請儘可能的使用公共的模組。
- 越簡單越好,儘量在一個單獨的批量應用中構建簡單的批量處理,並避免複雜的邏輯結構。
- 儘量的保持儲存的資料和程序儲存在同一個地方(換句話說就是儘量將資料儲存到你程式執行的地方)。
- 最小化系統資源的使用,尤其針對 I/O。儘量在記憶體中執行儘可能多的操作。
- 檢查應用的 I/O(分析 SQL 語句)來避免不必要的的物理 I/O 使用。特別是以下四個常見的缺陷(flaws)需要避免:
- 在資料可以只讀一次就可以快取起來的情況下,針對每一個事務都來讀取資料
- 多次讀取/查詢同一事務中已經讀取過的資料
- 產生不必要的表格或者索引掃描
- 在 SQL 查詢中不指定 WHERE 查詢的值。
- 在批量執行的時候不要將一件事重複 2 次。例如,如果你需要針對你需要報表的資料彙總,請在處理每一條記錄時使用增量來儲存,儘可能不要再去遍歷一次同樣的資料。
- 為批量程序在開始的時候就分配足夠的記憶體,以避免在執行的時候再次分配記憶體。
- 總是將資料完整性假定為最壞情況。對資料進行適當的檢查和資料校驗以保持資料完整性(integrity)。
- 可能的話,請實現內部校驗(checksums )。例如,針對文字檔案,應該有一條結尾記錄,這個記錄將會說明檔案中的總記錄數和關鍵欄位的集合(aggregate)。
- 儘可能早地在模擬生產環境下使用真實的資料量,以便於進行計劃和執行壓力測試。
- 在大資料量的批量中,資料備份可能會非常複雜和充滿挑戰,尤其是你的系統要求不間斷(24 - 7)執行的系統。資料庫備份通常在設計時就考慮好了,但是檔案備份也應該提升到同樣的重要程度。如果系統依賴於文字檔案,檔案備份程式不僅要正確設定和形成文件,還要定期進行測試。
https://www.cwiki.us/display/SpringBatchZH/General+Batch+Principles+and+Guidelines