笔记: 《分布式系统:概念与设计》第一章 分布式系统的特征
1.1 簡介
分布式系統概念:一個硬件或軟件組件分布在連網的計算機上,組件之間通過傳遞消息進行通信和動作協調的系統
分布式系統的特征:
構造和使用分布式系統的主要動力來源于對共享資源的期望。
1.2 分布式系統的例子
(1)Web搜索:Google
(2)大型多人在線游戲
(3)金融交易
(4)分布式多媒體系統
Google用于支持搜索的分布式系統基礎設施的亮點:
(1)一個底層物理設施:由位于全世界的多個數據中心的聯網計算機組成
(2)一個分布式文件系統
(3)一個相關的結構化分布式存儲系統:提供對超大數據集的快速訪問
(4)一個鎖服務:提供分布式加鎖和協定等功能
(5)一個編程模式:支持對超大并行和分布式計算的管理
復雜事件處理(Complex Event Processing, CEP):提供一種方法來將一起發生的事件組成邏輯的、時序的或空間的模式。
防火墻:保護企業內部網,防止未授權的消息進出網絡。防火墻是通過過濾到達消息和外發消息來實現的,可在源或目的地進行過濾。
1.3 分布式系統的趨勢
移動計算:指用戶在移動或訪問某個非常規環境時執行計算任務的性能。
云被定義成一組基于互聯網的應用,并且足以滿足大多數用戶需求的存儲和計算服務的集合,這使得用戶能大部分或全部免除本地數據存儲和應用軟件的使用。
通常,云實現在集群計算機上,從而提供每個服務所要求的必要的伸縮性和性能。集群計算機(cluster computer)是互連的計算機集合,它們緊密協作提供單一的、集成的高性能計算能力。集群服務器的總目的是提供一系列的云服務,包括高性能計算能力、大容量存儲,豐富的應用服務。
1.4 關注資源共享
服務:表示計算機系統中管理相關資源并提供功能給用戶和應用的一個單獨的部分。服務將資源訪問限制為一組定義良好的操作。
客戶-服務器計算:指在連網的計算機上的一個運行程序,這個程序接收來自其他計算機上正在運行的程序的請求,這執行一個服務并適當地做出響應。發出請求的稱為客戶,響應請求的程序服務器。
1.5 挑戰
(1)異構性
異構性,即存在多樣性和差別。以下幾個方面均存在異構性:
- 網絡
- 計算機硬件
- 操作系統
- 編程語言
- 由不同開發者完成的軟件實現
中間件:指一個軟件層,它提供一個編程抽象,同時屏蔽了底層網絡、硬件、操作系統和編程語言的異構性。
移動代碼:指能從一臺計算機發送到另一臺計算機,并在目的計算機上運行的代碼。適合在一種計算機上運行的代碼未必適合在另一種計算機上運行,因為可執行程序通常依賴于計算機的指令集和操作系統(例如Windows和Linux)
(2)開放性
分布式系統的開放性主要取決于新的資源共享服務能被增加和供多種客戶程序使用的程度。
開放的分布式系統特征總結:
(3)安全性
信息資源的安全性包括三個方面:
加密技術可解決的問題:
尚未圓滿解決的安全問題:
(4)可伸縮性
如果資源數量和用戶數量激增,系統仍能保持其有效性,那么該系統就被稱為可伸縮的。
可伸縮分布式系統的設計面臨的挑戰:
(5)故障處理
分布式系統的故障是部分的,即有些組件出了故障而有些組件運行正常。因此故障的處理相當困難。
故障處理技術:
檢測故障:有些故障通過一定的手段是可以被檢測的。
掩蓋故障:有些被檢測到的故障能被隱藏起來或降低它的嚴重程度。例如:
(1)消息在不能到達時進行重傳(2)將文件數據寫入兩個磁盤,如果一個磁盤損壞,另一個磁盤的數據仍是正確的。容錯:試圖檢測并隱藏所有的故障是不實際的,服務的客戶應該能被設計成容錯的。例如:瀏覽器不會一直等待與它的服務器建立連接,如果不能連接,則通知用戶嘗試稍后進行連接。
故障恢復:在服務器崩潰后,永久數據的狀態能被恢復或“回滾”。
冗余:利用同于組件,服務可以實現容錯。
面對硬件故障,分布式系統提供高可用性。系統的可用性是對系統可用時間的比例的一個度量指標。當分布式系統中的一個組件出現故障時,僅僅是使用受損組件的那部分工作受到影響。如果用戶正在使用的計算機出現故障,用戶可以轉移到另一臺計算機上,并且服務器進程能在另一臺計算機上啟動。
(6)并發性
服務和應用通常運行并發地處理多個客戶請求。為了使對象在并發環境中能安全使用,它的操作必須在數據保持一致的基礎上同步。這可通過標準的技術(信號量或鎖等等)來實現。
(7)透明性
定義:對用戶和應用程序員屏蔽分布式系統的組件的分離性,使系統被認為是一個整體,而不是獨立組件的集合。
訪問透明性:用相同的操作訪問本地資源和遠程資源。
位置透明性:不需要知道資源的物理或網絡位置就能夠訪問它們。
并發透明性:幾個進程能并發地使用共享資源進行操作而互不干擾。
故障透明性:屏蔽錯誤,無論是硬件還是軟件故障,用戶都能夠完成它們的任務。
性能透明性:當負載變換,系統能被重新配置以提高性能。
伸縮透明性:系統和應用能夠進行擴展而不改變系統結構或應用算法。
訪問透明性:例如具有文件夾的圖形界面,無論是本地資源還是遠程資源,文件夾的圖形用戶界面都是一樣的。
位置透明性:例如Web資源名或URL就是位置透明的,不需要知道資源的物理或網絡位置即可進行訪問。
網絡透明性(訪問透明性和位置透明性的統稱):例如電子郵件地址的使用。給用戶發送郵件不需要知道他們的物理位置或網絡位置,發送郵件信息的過程也不依賴于接收者的位置。
(8)服務質量
影響客戶和用戶體驗的服務質量是可靠性、安全性和性能。
1.6 實例研究:萬維網
Web基于以下三個主要的標準技術組件:
(1)超文本標記語言(HTML) :頁面在瀏覽器上顯示時指定其內容和布局的語言。
(2)統一資源定位器(URL):用于識別文檔和保存成Web一部分的其他資源。
(3)具有標準交互規則(超文本傳輸協議,HTTP)的客戶-服務器體系結構。
HTTP URL有兩項主要的工作:
HTTP的主要特征:
Web服務器上運行的為客戶生成內容的程序通常稱為公共網關接口(Common Gateway Interface, CGI)程序。一個CGI程序可以具有任何特定應用的功能,只要它分析客戶提供給它的參數,產生所要求類型的內容。
可擴展標記語言(Extensible Markup Language, XML)是一種以標準的、結構化的、特定于應用的格式表示數據的方式。從原理上看,用XML表示的數據在不同的應用間是可移植的,因為它是自描述的:它包含數據元素的名字、類型和結構。
第一章完,謝謝閱讀。
總結
以上是生活随笔為你收集整理的笔记: 《分布式系统:概念与设计》第一章 分布式系统的特征的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 《分布式系统概念与设计》读书笔记(第零章
- 下一篇: 专业课测试题