亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

程序如何突然終止造成數據丟失

程序如何突然終止造成數據丟失

aluckdog 2019-03-11 21:43:00
每一次操作之前都會記錄日志,防止中斷造成數據丟失。操作如下:A 記錄日志B redis 計數+1C 清除日志1、如果執行完A中斷,啟動之后檢查日志,可以再次執行操作B,數據不丟失。2、如果執行完b就中斷,那么日志恢復之后就會多執行一次b,數據雖然不丟失,但是造成重復數據。題目原本是斷電,后來可能都圍繞斷電回答了,其實斷電概率還是挺小的,主要是應用執行的時候突然被用戶終止運行,或者程序崩潰等等造成的數據丟失??丛u論還有人抬扛的。實際上,很多數據庫都有類似的機制防止突然中止造成數據丟失。。1、比如 leveldb :log文件在LevelDb中的主要作用是系統故障恢復時,能夠保證不會丟失數據。因為在將記錄寫入內存的Memtable之前,會先寫入Log文件,這樣即使系統發生故障,Memtable中的數據沒有來得及Dump到磁盤的SSTable文件,LevelDB也可以根據log文件恢復內存的Memtable數據結構內容,不會造成系統丟失數據,在這點上LevelDb和Bigtable是一致的。相關文章:https://www.cnblogs.com/haipp...2、還有elasticsearch:如果沒有用 fsync 把數據從文件系統緩存刷(flush)到硬盤,我們不能保證數據在斷電甚至是程序正常退出之后依然存在。為了保證 Elasticsearch 的可靠性,需要確保數據變化被持久化到磁盤。相關文章:https://www.elastic.co/guide/...3、還有rabbitmq的防止丟消息和重復消費:相關文章:https://www.jianshu.com/p/5ad...
查看完整描述

2 回答

?
哆啦的時光機

TA貢獻1779條經驗 獲得超6個贊

思考了一夜,我發現這個問題無解。
想想為什么要考慮程序頻繁掛掉的場景呢?偶爾的斷電,小概率數據丟失應該都是可以忍受的。

最重要的是,防止這種事情發生。


查看完整回答
反對 回復 2019-03-11
  • 2 回答
  • 0 關注
  • 697 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號