分布式系統閱讀筆記(一)-----分布式系統的特徵

來源:互聯網
上載者:User

標籤:分布式   作業系統   結構   網路   架構   

1)引言

從今天開始,我將會開始學習分布式系統的一些理論知識,全方面的重新學習分布式的各個技術點,所以選用了原版本的英文教材<<Dstributed Sysytems Concepts And Design>>作為學習的資源。在期間,我會沒讀完一章,及時的做一些閱讀的筆記,1個是怕自己忘了,還有一個是把知識分享給大家,這也是我首次閱讀全英文的書籍,還是挺吃力的,希望能堅持把長達1000頁的書籍學習完把。

2)分布式系統的介紹

分布式系統是通過網路連接各個電腦,通過訊息通訊的方式實現溝通。有下面3個主要特徵

1.並發性,當你在使用你的電腦做你的事情時,別人也在用他的電腦做他的事。

2.沒有全域的時鐘的概念,很顯然,不同地區的時區的時間是不一樣。

3.失敗的獨立性,當你的電腦崩潰的時候,他只會影響到你自己,其他節點上的電腦還是會繼續啟動並執行。

3)分布式系統的例子

1.Web搜尋,比如米在Google上搜尋學校,Google就會在數千個節點中所存放的圖片,文字中去尋找相應的資料,最終呈現在你的面前,在這裡面需要數千個電腦節點的支援,這些節點分布式於事件各地,裡面存放了大致PB,TB層級的資源。

2.線上遊戲。線上遊戲主要考慮的一個問題是遊戲的並發處理能力,但你的只有1000名的時候,系統也許運作非常正常,但是當你的系統的使用者規模擴大到100W的時候,你的系統還能承受的了嘛,也許這個時候你的系統結構得進行調整了,還是C-S結構, Or Point-To-Point點對對的方式?

3.金融貿易系統。金融貿易系統也是一個非常典型的分布式系統運作的例子。裡面展現各個資源的資訊,以及價格的波動於變化,所有他對於1個因素是非常看重的,那就是real-time(即時性),所有像這類系統,在設計之初就做全方面的考慮。

4)分布式系統的趨勢

1.將會成為普遍的網路技術。分布式系統將會在現代的網路中越來越普遍,龐大的網際網路本身就可以看做是一個分布式的系統

2.分布式系統對於移動計算的支援。你可以用你的手提電腦,又或者是你的手機,通過網路可以隨時控制家中的洗衣機洗衣服,也可以在辦公室即時查閱室內的溫度,前提是只要你接入了網。

3.分布式多媒體系統。隨著分布式系統的發展,也越來越支援多媒體的服務,可以在分布式系統中存放多種類型的多媒體資訊,圖片,文字,視頻,音頻等,並通過網路的方式在展示給使用者。

4.分布式的計算將會成為一個公用的服務。其實這就是我們老是提到的Cloud Computing(雲端運算),可以把分布式系統中的資源當成一種服務賣給第三方,可以物理上的服務,比如IAAS基礎設施的服務,可以上層的SaaS軟體服務,無須使用者去關心內部的細節。

5)資源共用

在分布式系統中,一個很重要的概念就是Resource Sharing,資源共用,正是因為資源的共用性,才方便了人們的操作,比如上面的一個檔案,你可以去閱讀,人家也可以閱讀。

6)分布式所面臨的挑戰和困難

1.異構的環境。至少下面的這些東西可能會不一樣,網路,硬體資源,作業系統,程式語言,還有不同的開發人員,目前針對於此的辦法是中介軟體的解決辦法,比如比較早的CORBA架構,還有1寫中介軟體java RMI,但是只是支援java一種語言的,還有一種辦法是mobile code的方法,這是什麼意思呢,字面意思是可移動性的代碼,就是你的代碼在你自己的機子上面編寫,但是最終我會讓他運行在其他的機子上,一個很好的例子就是java語言,他通過運行jvm上就解決了作業系統不一樣的問題。

2.開放性的問題。分布式系統的開發性一直不是特別好,一個關鍵的因素是介面的公開性,只有介面的公開才能讓更多的開發人員去擴充這個分布式系統。介面的公開意味要進行統一的規範的聲明,因為 要考慮到他的異構的環境。

3.安全問題。安全問題在分布式系統中來說,主要針對的是資源來說的,當然常見的操作就是加密操作了,或者你乾脆不開放你的系統,只給內部人員使用,但是有2個問題還是很難解決的:

(1).Dos拒絕服務的攻擊,如果你辦公室的人因為某種原因佔著資源不放,你要怎麼辦。

(2).移動程式的安全攻擊,英文原稱是Security Of mobile code,一個常見的例子是你早上收到了一封電子郵件,當你毫無戒備心開啟它的時候,其實這時候你運行了一個惡意的程式,你的電腦就被attack了。

4.擴充性。在分布式系統中,擴充性一直是一個非常頭大的東西,但你的使用者群數量成倍增長的時候,你要考慮用各種手段去改善你的系統了,不過你要要率下面幾個因素:

(1).控制實體資源的開銷,意味的增加機子不是一個永恒的解決辦法,至少開銷這塊你花不起。

(2).控制資料的流失,當你的系統進行擴增的情況下,不能讓原先的資料發生loss的操作

(3).防止軟體的資源被耗盡,比如說IP地址的數量,32位的ip地址越來越不能滿足我們生活的需要了。

(4).避免系統出現效能瓶頸。

5.出錯處理。一個好的分布式系統應當有個好的容錯機制。下面是幾個措施

(1).檢測出錯,以便系統的下一步處理,常用方法,checksum校正和機制

(2).掩蓋錯誤,當錯誤來到的時候,重新嘗試一次,或者當檔案中資料寫向磁碟中多個副本,當一個出錯的時候,沒關係還能保證其他的副本中的資料時正確的。

6.並發性。在高並發的情況下,保證資料的有序性,不會錯誤,用的比較多的方案是資訊號機制。

7.操作透明性。分布式系統使用起來要像使用自己本地主要一樣。

8.Qos服務品質。一個好的服務品質是對於分布式服務的一個基本要求。考察服務品質的2個因素是實用性和安全性。


參考文獻:<<Distributed Sysytems Concepts And Design>>原版第五版,author:George Coulouris,Jean Dollimore, Tim Kindberg,Gordon Blair

分布式系統閱讀筆記(一)-----分布式系統的特徵

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.