一個分佈式系統裏面,節點組成的網絡原本應該是連通的。然而可能由於一些故障,使得有些節點之間不連通了,整個網絡就分紅了幾塊區域。數據就散佈在了這些不連通的區域中。這就叫分區。當你一個數據項只在一個節點中保存,那麼分區出現後,和這個節點不連通的部分就訪問不到這個數據了。這時分區就是沒法容忍的。提升分區容忍性的辦法就是一個數據項複製到多個節點上,那麼出現分區以後,這一數據項就可能分佈到各個區裏。容忍性就提升了。然而,要把數據複製到多個節點,就會帶來一致性的問題,就是多個節點上面的數據多是不一致的。要保證一致,每次寫操做就都要等待所有節點寫成功,而這等待又會帶來可用性的問題。總的來講就是,數據存在的節點越多,分區容忍性越高,但要複製更新的數據就越多,一致性就越難保證。爲了保證一致性,更新全部節點數據所須要的時間就越長,可用性就會下降。
做者:鄔江
連接:https://www.zhihu.com/question/54105974/answer/139037688
來源:知乎
著做權歸做者全部。商業轉載請聯繫做者得到受權,非商業轉載請註明出處。網絡