分布式基础理论
分布式系統是建立在網絡之上的軟件系統,分布式系統具有高度的內聚性和透明性。
內聚性是指每一個數據庫分布節點高度自治,有本地的數據庫管理系統。透明性是指每一個數據庫分布節點對用戶的應用來說都是透明的,看不出是本地還是遠程。
分布式系統是多個處理機通過通信線路互聯而構成的松散耦合的系統。分布式系統應具有以下四個特征: ?
(1)分布性。分布式系統由多臺計算機組成,它們在地域上是分散的。整個系統的功能是分散在各個節點上實現的,因而分布式系統具有數據處理的分布性。
(2)自治性。分布式系統中的各個節點都包含自己的處理機和內存,各自具有獨立的處理數據的功能。
(3)并行性。一個大的任務可以劃分為若干個子任務,分別在不同的主機上執行。
(4)全局性。分布式系統中必須存在一個單一的、全局的進程通信機制,使得任何一個進程都能與其他進程通信,并且不區分本地通信與遠程通信。同時,還應當有全局的保護機制。系統中所有機器上有統一的系統調用集合,它們必須適應分布式的環境。在所有CPU上運行同樣的內核,使協調工作更加容易
優點
(1)資源共享。若干不同的節點通過通信網絡彼此互聯,一個節點上的用戶可以使用其他節點上的資源
(2)加快計算速度。如果一個特定的計算任務可以劃分為若干個并行運行的子任務,則可把這些子任務分散到不同的節點上,使它們同時在這些節點上運行,從而加快計算速度。另外,分布式系統具有計算遷移功能,如果某個節點上的負載太重,則可把其中一些作業移到其他節點去執行,從而減輕該節點的負載。這種作業遷移稱為負載平衡。 ?
(3)可靠性高。分布式系統具有高可靠性。如果其中某個節點失效了,則其余的節點可以繼續操作,整個系統不會因為一個或少數幾個節點的故障而全體崩潰。因此,分布式系統有很好的容錯性能。系統必須能夠檢測節點的故障,采取適當的手段,使它從故障中恢復過來。
(4)通信方便、快捷。分布式系統中各個節點通過一個通信網絡互聯在一起。通信網絡由通信線路、調制解調器和通信處理器等組成,不同節點的用戶可以方便地交換信息。缺點
存在通信網絡飽和或信息丟失和網絡安全問題,方便的數據共享同時意味著機密數據容易被竊取
系統設計難點編輯?
1.部分失效問題
由于分布式系統通常由若干部分組成,各個部分由于各種原因可能發生故障,如硬件故障、軟件錯誤及錯誤操作等。如果一個分布式系統不對這些故障進行有效的處理,系統某一組成部分的故障可能導致整個系統的癱瘓。 ?
2.性能和可靠性過分依賴于網絡
由于分布式系統是建立在網絡之上的,而網絡本身是不可靠的,可能經常發生故障,網絡故障可能導致系統服務的終止。另外,網絡超負荷會導致性能的降低,增加系統的響應時間。
3.缺乏統一控制
一個分布式系統的控制通常是一個典型的分散控制,沒有統一的中心控制。因此,分布式系統通常需要相應的同步機制宋協調系統中各個部分的工作。設計與實現一個對用戶來說是透明的且具有容錯能力的分布式系統是一項具有挑戰性的工作。?
4.難以合理設計資源分配策略
在集中式系統中,所有的資源都由操作系統管理和分配,但在分布式系統中,資源屬于各節點,所以調度的靈活性不如集中式系統,資源的物理分布可能與用戶請求的分布不匹配,某些資源可能空閑,而另一些資源可能超載。 ?
5.安全保密性問題
開放性使得分布式系統中的許多軟件接口都提供給用戶,這樣的開放式結構對于開發人員非常有價值,但同時也為破壞者打開了方便之門。
使用分布式系統主要有:
1.增大系統容量。我們的業務量越來越大,而要能應對越來越大的業務量,一臺機器的性能已經無法滿足了,我們需要多臺機器才能應對大規模的應用場景。所以,我們需要垂直或是水平拆分業務系統,讓其變成一個分布式的架構。
2.加強系統可用。我們的業務越來越關鍵,需要提高整個系統架構的可用性,這就意味著架構中不能存在單點故障。這樣,整個系統不會因為一臺機器出故障而導致整體不可用。所以,需要通過分布式架構來冗余系統以消除單點故障,從而提高系統的可用性。
3.因為模塊化,所以系統模塊重用度更高
4.因為軟件服務模塊被拆分,開發和發布速度可以并行而變得更快
5.系統擴展性更高
6.團隊協作流程也會得到改善
?
分布式系統的類型有三種:
1.分布式處理,但只有一個總數據庫,沒有局部數據庫
2.分層式處理,每一層都有自己的數據庫
3.充分分散的分布式網絡,沒有中央控制部分,各節點之間的聯系方式又可以有多種,如松散的聯接,緊密的聯接,動態的聯接,廣播通知式的聯接等
?
?
什么是分布式系統!以及分布式系統架構的優缺點
1.從上面的表格可以看到,分布式系統雖然有一些優勢,但也存在一些問題
2.架構設計變得復雜(尤其是其中的分布式事務)
3.部署單個服務會比較快,但是如果一次部署需要多個服務,部署會變得復雜
4.系統的吞吐量會變大,但是響應時間會變長
5.運維復雜度會因為服務變多而變得很復雜
6.架構復雜導致學習曲線變大
7.測試和查錯的復雜度增大
8.技術可以很多樣,這會帶來維護和運維的復雜度
9.管理分布式系統中的服務和調度變得困難和復雜
?
?
總結
- 上一篇: 常见设计模式说明
- 下一篇: 创建守护进程关键步骤