1. 程式人生 > >關於分散式系統的一些學習心得-筆記

關於分散式系統的一些學習心得-筆記

分散式系統(distributed system)是建立在網路之上的軟體系統。處理各項協助的任務,然後整合出結果

分散式系統是一個複雜且寬泛的研究領域,學習分散式系統通常要從兩個方面來入手

1. 近些年分散式系統領域都在做些什麼。
2. 為什麼現在投入分散式系統的學習和研究是值得的。


總的來說,分散式系統要做的任務就是把多臺機器有機的組合、連線起來,讓其協同完成一件任務,可以是計算任務,也可以是儲存任務,首先我們可以發現分散式分為三個方面

1. 分散式儲存系統
2. 分散式計算系統
3. 分散式管理系統


應用和標準:
並行和高效能應用:原則上,並行應用也可以在共享儲存器多處理機上執行,但共享儲存器系統不能很好地擴大規模以包括大量的處理機。HPCC(高效能運算和通訊)應用一般需要一個可伸縮的設計,這種設計取決於分散式處理。


容錯應用:因為每個P E是自治的,所以分散式系統更加可靠。一個單元或資源(軟體或硬體)的故障不影響其他資源的正常功能。


固有的分散式應用:許多應用是固有分散式的。這些應用是突發模式(burstmode)而非批量模式(bulk mode)。這方面的例項有事務處理和Internet Java,程式。


同集中式系統相比較,分散式系統的另一個潛在的優勢在於它的高可靠性。通過把工作負載分散到眾多的機器上,單個晶片故障最多隻會使一臺機器停機,而其它機器不會受任何影響。理想條件下,某一時刻如果有5%的計算機出現故障,系統將仍能繼續工作,只不過損失5%的效能。對於關鍵性的應用,如核反應堆或飛機的控制系統,採用分散式系統來實現主要是考慮到它可以獲得高可靠性。




建立分散式系統的另一原因在於一些應用本身是分散式的。一個超級市場連鎖店可能有許多分店,每個商店都需要採購當地生產的商品(可能來自本地的農場)、進行本地銷售,或者要對本地的哪些蔬菜因時間太長或已經腐爛而必須扔掉作出決定。因此,每個商店的本地計算機能明瞭存貨清單是有意義的,而不是集中於公司總部。畢竟,大多數查詢和更新都是在本地進行的。然而,連鎖超級市場的高層管理者也會不時地想要了解他們還有多少甘藍。實現這一目標的一種途徑就是將整個系統建設成對於應用程式來說就像一臺計算機一樣,但是在實現上它是分佈的,像我們前面所描述的一個商店有一臺機器。這就是一個商業分散式系統。
 
 

優點如下
1-經濟:微處理機提供了比大型主機更好的效能價格比
2-速度:分散式系統總的計算能力比單個大型主機更強
3-固有的分佈性:一些應用涉及到空間上分散的機器
4-可靠性:如果一個機器崩潰,整個系統還可以運轉
5-漸增:計算能力可以逐漸有所增加
6-資料共享:允許多個使用者訪問一個公共的資料庫
7-裝置共享:允許多個使用者共享昂貴的外圍裝置(如彩色印表機)
8-通訊:使得人們之間的通訊更加容易,如通過電子郵件
9-靈活性:用最有效的方式將工作負荷分配到可用的機器上


1-把模組劃分,使用介面通訊,降低模組之間的耦合度
2-把專案拆分成若干個子系統,不同的團隊負責不同的子系統
3-增加功能時候只需要再增加一個子專案,呼叫其它系統的介面即可
4-可以靈活的進行分散式部署









缺點如下
1-軟體:分散式系統開發的軟體還很少
2-網路:網路可能飽和和引起其它的問題
3-安全:容易造成對保密資料的訪問


1-系統之間的互動需要遠端通訊,介面開發需要工作量
2-各個模組之間的業務邏輯無法公用