軟體介面資料一致性機制

2021-09-07 22:11:54 字數 793 閱讀 4139

軟體互聯互通的普及導致軟體之間的呼叫越來越多,但兩套軟體不在同乙個事務中控制,極易導致二者資料不一致的情況。

可採用以下機制,保證軟體介面資料一致性

1.呼叫方訪問伺服器,如果在一定時間內(設定的超時時間,或人為強制中斷)沒有收到成功資訊。有以下幾種情況:

(1)伺服器沒收到請求,結果網斷了。

(2)伺服器收到了請求但儲存失敗,在返回結果前網斷了。

(3)伺服器儲存成功,但在返回結果前網斷了。

原則:呼叫方只要成功發出請求,但沒有收到儲存成功的返回資訊,則自動呼叫沖銷功能。

此時呼叫沖銷很有可能不成功,多數情況是網路不穩定了。經3次嘗試沖銷都失敗後,記錄下來,到下次(需確定觸發機制)再呼叫進行沖銷。

因此在給伺服器傳送儲存之前,呼叫方需要先把要傳送的資料儲存到資料庫中。否則有可能操作員等不到伺服器的返回資訊,強行結束了程式。

如要繼續提交同一筆資料,應自動先呼叫沖銷成功後再傳送提交請求。

2.呼叫方與伺服器方都要各自儲存對方的交易流水號,可以用來防止重複資料上傳。

伺服器方可以把使用者編號+呼叫方的交易流水號做為唯一性約束,這樣可防止呼叫方同一筆資料的重複上傳。

3.對賬:每天0時後,自動進行對賬,標出對賬成功與失敗的情況。對賬標誌分為:未對賬、對賬成功、對賬失敗。

其中對賬失敗的要記錄下失敗原因。

分為以下幾種情況:

(1)呼叫方有,但服務方沒有:按以上機制,基本不會出現。

(2)呼叫方沒有,但服務方有:服務方資料仍為未對賬狀態。

(3)二者資料內容不一致:對賬失敗。

如果有好的思路,在此一起討論。

資料一致性

資料一致性通常指關聯資料之間的邏輯關係是否正確和完整。而資料儲存的一致性模型則可以認為是儲存系統和資料使用者之間的一種約定。如果使用者遵循這種約定,則可以得到系統所承諾的訪問結果。常用的一致性模型有 a 嚴格一致性 linearizability,strict atomic consistency ...

資料一致性

丟失更新 未確定的相關性 不一致的分析和幻想讀 事務a讀取與搜尋條件相匹配的若干行。事務b以插入或刪除行等方式來修改事務a的結果集,然後再提交。幻讀是指當事務不是獨立執行時發生的一種現象,例如第乙個事務對乙個表中的資料進行了修改,比如這種修改涉及到表中的 全部資料行 同時,第二個事務也修改這個表中的...

資料一致性

資料一致性通常指關聯資料之間的邏輯關係是否正確和完整。而資料儲存的一致性模型則可以認為是儲存系統和資料使用者之間的一種約定。如果使用者遵循這種約定,則可以得到系統所承諾的訪問結果。常用的一致性模型有 a 嚴格一致性 linearizability,strict atomic consistency ...