本文主要介紹什麼是分佈式系統以及分佈式系統存在哪些問題。服務器
互聯網技術的發展,致使大型網站須要的計算能力和存儲能力愈來愈高。網站架構逐漸從集中式轉變成分佈式。網絡
把一個計算任務分解爲若干個計算單元,並分派到若干個不一樣的計算機中去執行,而後再彙總計算結果。架構
分佈式的工做方式有點相似於團隊合做。當有一項任務分配到某個團隊以後,團隊內部的成員開始各司其職,而後把工做結果統一彙總給團隊主管,由團隊主管再整理團隊的工做成果彙報給公司。分佈式
雖然分佈式和集中式系統相比有不少優點,好比能提供更強的計算、存儲能力,避免單點故障等問題。可是因爲採用分佈式部署的方式,就常常會出現網絡故障等問題,而且如何在分佈式系統中保證數據的一致性和可用性也是一個比較關鍵的問題。網站
好比在集中式系統中,有一些關鍵的配置信息,能夠直接保存在服務器的內存中,可是在分佈式系統中,如何保存這些配置信息,又如何保證全部機器上的配置信息都保持一致,又如何保證修改一個配置可以把此次修改同步到全部機器中呢?spa
再好比,在集中式系統中,進行一個同步操做要寫同一個數據的時候,能夠直接使用事務+鎖來管理保證數據的ACID。可是,在分佈式系統中如何保證多臺機器不會同時寫同一條數據呢?事務
還有不少諸如此類的問題,大部分都是圍繞着分佈式系統中的數據的一致性問題。內存