分佈式系統關鍵點android
分佈式系統(distributed system)是創建在網絡之上的軟件系統。正是由於軟件的特性,因此分佈式系統具備高度的內聚性和透明性。所以,網絡和分佈式系統之間的區別更多的在於高層軟件(特別是操做系統),而不是硬件。內聚性是指每個數據庫分佈節點高度自治,有本地的數據庫管理系統。透明性是指每個數據庫分佈節點對用戶的應用來講都是透明的,看不出是本地仍是遠程。在分佈式數據庫系統中,用戶感受不到數據是分佈的,即用戶不須知道關係是否分割、有無副本、數據存於哪一個站點以及事務在哪一個站點上執行等算法
1、分佈式系統計算節點分佈和計算節點一致性算法數據庫
一、 現分佈式15個節點,計算任務分佈以下:微信
計算任務ID網絡 |
2i-1異步 |
(+節點編號)任務分配節點分佈式 |
1spa |
1操作系統 |
2blog |
2 |
2 |
3 |
3 |
4 |
5 |
4 |
8 |
9 |
即在計算節點1上的任務爲二、三、五、9,以此類推出個計算節點負責的計算任務編號。
二、 當分佈式節點中並未存在計算節點,或分配任務的計算節點掛了,尋找最近計算節點,如當20計算任務分配到18結算節點
三、 當分佈式計算節點中加入新的節點後,各節點計算任務重分配問題
當加28計算節點後,2和20計算點首先進行從新計算、當進入新的計算節點後,經過1網相鄰節點傳播,尋找計算節點
2、分佈式系統中各種一致性問題
一、 順序一致性
當P1寫入x值後,各計算節點,應該在讀到x值後應該不可回溯
二、 因果一致性
當p1計算節點連續寫入x後,p2計算節點一樣對x進行操做,其餘計算節點對x當讀能夠存在不一致,但不一致應該是順序的一致性。
三、 客戶一致性
保持計算節點的一致性最終目標是實現系統的客戶一致性,上海客戶到西安出差,讀取西安節點郵件列表,能夠只展示最新郵件,但最新郵件必須和上海計算節點一致,對歷史數據加載經過異步實現
四、 接口一致性
IOS和android在使用微信上的用戶體驗差距並無太大差異,接口的一致性。
五、 面向數據一致性
3、數據一致性
一、 單調讀
二、 單調寫
三、 讀寫一致
四、 順序讀寫