關於日誌事務的問題

lovejdon發表於2012-03-20
今天公司在討論關於如何從百萬級別庫中取出唯一一條記錄的問題進行討論,而且不允許兩個使用者取同一條記錄。方案是有,但是對於錯誤處理方式有些問題,我提的觀點是:將資料放入佇列,從佇列中獲取,但是如果使用者獲取佇列中的資料操作期間失敗,這個時候需要將這個資料再放回佇列尾部,供其他人使用,但是佇列伺服器有可能是在其他位置,這樣如何此時佇列伺服器響應慢,返回給客戶超時,那此條記錄就在佇列中丟失,無法跟蹤到這條記錄,我當時提到的方案是利用日誌記錄的方式。但是我同事馬上提到了,如果日誌操作失敗呢?

對於這種情況,我也感覺很迷茫,如果按照同事的說法,那麼每一步都有可能存在錯誤,而且在分散式系統中尤其明顯,如果每一步都有可能出錯,我們這個思想是不是進入了死迴圈,沒有了事物概念可言,那麼這樣的操作就會出現問題。。。不知道是我的想法除了問題,還是我同事這樣對每一步錯誤追根問底的方式的問題呢?請幫忙分析下。

後來我想到了利用庫的方式去儲存,但是按照同事的說法,庫中存放如果失敗,資料仍然丟失。。那麼接著用日誌,然後日誌要失敗呢?還是丟失。。。那到什麼時候是個頭兒呢?

相關文章