想起一句話:”多加一層,就可以把問題解決了“

husthxd發表於2016-02-15

近段時間在做HA(高可用)的設計,資料庫使用Mongodb,測試場景是1主2從

測試發現,在往Mongodb批次寫入資料(100w的資料)時,主節點當機,當前請求會丟擲異常,下一請求自動切換到從節點上,而且100w的資料中有30w+的資料已同步到從節點上,說明Mongodb在執行CRUD時如果主節點當機會丟擲異常並且不能保證資料的一致性,即100w資料要麼全部插入,要麼全部不插入。

因此,在應用層和Mongodb之間多加一層資料訪問層(DAO),在DAO中捕獲異常後,清除本次出錯操作的狀態(如清除部分已插入的資料等),並重新執行,從而實現對應用的全透明。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/6906/viewspace-1989173/,如需轉載,請註明出處,否則將追究法律責任。

相關文章