1. 程式人生 > >Shared Nothing、Shared Everthting、Shared Disk

Shared Nothing、Shared Everthting、Shared Disk

資料庫構架設計中主要有Shared Everthting、Shared Nothing、和Shared Disk:
1.Shared Everything:一般是針對單個主機,完全透明共享CPU/MEMORY/IO,並行處理能力是最差的,典型的代表SQLServer以及一些用了單節點oracle、mysql等庫的系統。以小微型,不需要考慮大併發業務的系統採用的居多。
2.Shared Nothing和Shared Disk是目前常見的分散式資料庫典型模型。
  先講Shared Disk,每個結點有自己的CPU和記憶體,但是共享同一個儲存(一般都是FC鏈路高階儲存,現在採用IB交換機模式的也越來越流行了),目前主流如ORACLE的RAC叢集和DB2 PureScale叢集,這類業務多用於併發比較多的OLTP業務,隨著併發量的不斷增大,效能也會降低,需要不斷的擴充節點數量,以滿足需求,當然建設更復雜、維護成本也相當高。

最新Shared Nothing架構下,每個結點都有自己的CPU、記憶體、儲存。跨結點的資料訪問通過結點之間的網路通訊來完成。目前有DB2 DPF、Hadoop、帶分庫分表的Mysql Cluster也是一種,各節點相互獨立,各自處理自己的資料,處理後的結果可能向上層彙總或在節點間流轉。一些特定時間段內超大併發業務可以通過橫向擴張資源做為系統的節點,滿足需求,比如說春運火車搶票了,12306系統壓力比平時大很多;又比如,最近的明星微博一個動態,立刻引發熱搜,導致伺服器吃不消,這些都可以在熱點時間段租用雲伺服器資源部署自己的節點,等熱點時間過後再收縮節點即可,還有就是11.11這個熱點時間淘寶購物狂歡,也一定是需要Shared Nothing架構下的解決方案的。
  Shared Nothing 架構,未來的場景會越來越多,越來越流行,因為資料是當前社會的一個重要資源,資料量幾何級爆炸增長,資料的清洗、分析、挖掘等等一系列大資料應用,必然會選擇成本適當,技術實用的Shared Nothing。這也越來越需要運維人員懂得業務開發,懂得架構設計,能夠按照業務需求,設計出一個合理的或水平切分、或垂直切分甚至矩陣分佈的資料庫架構,來滿足未來場景挑戰。