分布式系統介紹(持續更新)

來源:互聯網
上載者:User

 

 

 

 

分布式系統介紹


目 錄

1      修改記錄...1

2      概要...2

3      分散式運算...3



 1   概要

本文主要對大規模分布式系統的發展進行梳理,以加深理解。


 

2   分散式運算

       隨著電腦技術的發展和資訊爆炸時代的來臨,人們對資料計算的需求越來越高,特別是海量資料的科學計算。傳統的單機受到計算速度、容量的限制已經無法滿足需求。在“網路+電腦”的基本思想下,分散式運算應運而生。

2.1.1             分散式運算定義

      分布式系統由兩台或兩台以上機器組成的系統,具有物理上分布的實體資源和邏輯資源。這些資源高度自治和相互合作的工作。每台電腦都具有資料存放區功能和資料處理能力。在分散式運算中,資料處理不是由單機完成而是由多台機器協作完成。比如一項工作P,由兩部分組成    p1和p2。我們把p1放在機器A上完成,p2放在機器B上完成,這些就形成一個分散式運算。

2.1.2             主流分布式技術

        現在分散式運算問題基本可以採用google的三個技術解決,分別為:GFS,MapReduce,Bigtable,這三個技術被稱為“google三駕馬車”,google只公開了論文而未開原始碼,開源界對此非常有興趣,仿照這三篇論文實現了一系列軟體,如:Hadoop、HBase、HDFS、Cassandra等。

       在google這些技術還未出現之前,企業界在設計大規模分布式系統時,採用的架構往往是database+sharding+cache。

        該架構解釋如下:前端cache是為了提高響應速度,後端資料庫則用於資料永久儲存,防止資料丟失,而sharding是為了在多台機器間分攤負載。最前端由大塊大塊的cache組成,要保證至少99%(的訪問資料落在cache中,這樣可以保證使用者訪問速度,減少後端資料庫的壓力,此外,為了保證前端cache中資料與後端資料庫中資料一致,需要有一個中介軟體非同步更新(為啥非同步?理由簡單:同步代價太高。非同步有缺定,如何彌補?)資料,這個有些人可能比較清楚,新浪有個開源軟體叫memcachedb(整合了Berkeley
DB和Memcached),正是完成此功能。另外,為了分攤負載壓力和海量資料,會將資料經過分區後存放到不同節點上(稱為“sharding”)。

      這種架構優點非常明顯:簡單,在資料量和使用者量較小的時候完全可以勝任。但缺定早晚一天暴露出來,即:擴充性和容錯性太差,維護成本非常高,尤其是資料量和使用者量暴增之後,系統不能通過簡單的增加機器解決問題。

     而上述所有問題都可以用google引導的分散式運算策略解決大型的、分布式的、對大量資料的訪問。

    參考文獻:http://dongxicheng.org/search-engine/system-designing-in-finging-jobs/


聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.