ACID:數據庫
A:原子性:一次操做要麼執行成功,要麼執行不成功;併發
C:一致性:是指事務的執行不能破壞數據的完整性和一致性,一個事務在執行前和執行後數據庫都要保持一致性狀態;分佈式
I:隔離性:在併發的環境下,併發的事務是相互隔離的;spa
D:持久性:事務一旦提交,那麼結果就變成不可更改的。隊列
隔離級別:事務
隔離級別 | 髒讀 | 可重讀 | 幻想讀 |
未受權讀 | 存在 | 存在 | 存在 |
受權讀 | 不存在 | 存在 | 存在 |
可重複讀 | 不存在 | 不存在 | 存在 |
串行化 | 不存在 | 不存在 | 不存在 |
下面是個簡單的畫圖表示這幾種狀況下讀取到的數據ci
說明串行化是最高級別,他講任務存在在一個隊列,串行化執行,table
這裏爲何在分佈式中說道關係型數據庫ACID這些東西,由於在傳統的單機模式下,ACID可以很好地知足咱們的業務需求,那麼在分佈式環境下面呢,數據分散在集羣內部不一樣的機器上,好比一個跨行轉帳的業務,一個是甲方銀行的轉出莊戶,收款方爲乙銀行的客戶,那麼映射到程序中就會使兩個不一樣的服務,這兩個服務之間仍是彼此獨立,無狀態,互不影響的,這兩個不一樣服務構成了一個分佈式下的任務,若是按照ACID區作確定不能夠,由於分佈式環境下存在拜占庭問題,通訊不可信,那麼咱們就要考慮其餘途徑。集羣
待續程序