分佈式數據庫入門
分佈式系統的定義
分佈式系統是指組件分佈在網絡上,組件之間通過消息進行通信和動作協調的系統。
核心理念:多臺服務器協同工作,完成單臺無法完成的任務
尤其是高併發或者大數據量的任務
特點
- 透明性
分佈式系統對用戶來說是透明的,
一個分佈式系統再用戶面前就像一個傳統的單機一樣
用戶可以不用瞭解內部結構就可以使用
- 拓展性
最大特點可拓展,能夠根據需求的增加而拓展,
橫向拓展
縱向拓展
- 可靠性
分佈式系統不允許單點失效問題的存在,如果一臺機器壞了,其他機器替代
- 高性能
出發點
缺點
- 在節點通信部分消耗大,線程安全問題,需要在保證數據完成性的同時兼顧性能
- 過分依賴網絡,網絡信息的丟失或飽和將會抵消分佈式系統的大部分優勢
- 有潛在的數據安全和網絡安全等安全性問題
分佈式/集中式區別
分佈式採用並行計算
集中式系統採用串行計算
分佈式可靠性更高 可拓展性高
分佈式數據庫
數據量爆炸,動輒數百TB甚至數百PB的規模,遠超過現有的傳統計算技術和信息系統的處理能力,集中式數據庫面對大規模數據處理表現其侷限性。
分佈式數據庫是在集中式數據庫的基礎上發展起來的,是計算機技術和網絡技術結合的產物。
分佈式數據庫:數據在物理上分佈而在邏輯上集中管理的數據庫系統。
物理上分佈:數據分佈在物理位置不同並由網絡連接的節點或站點上;邏輯上集中是指各數據節點之間在邏輯上是一個整體,並由統一的數據庫管理系統管理。不同節點可以跨機房
優點
- 透明性
用戶不必關係數據的邏輯分區和物理位置分佈的細節
不必關心重複副本(冗餘數據)的一致性問題,
不關心數據庫支持何種數據類型
當數據從一個場地移動到另一個場地時不必改寫應用程序,使用起來如同一個集中式數據庫
- 數據冗餘性
通過冗餘性實現系統的可靠性、可用性,並改善性能。
多個節點存儲數據副本,當某一節點的數據遭到破壞時,冗餘的副本仍然可以正常工作
- 易拓展性
水平拓展
- 自治性
個節點的數據本地DBMS管理,具有自治處理能力,完成本場地的應用或者局部應用
分佈式數據庫實現原理
邏輯整體 物理分佈