分布式系統---負載均衡、同步


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

http://os.51cto.com/art/201209/357433.htm   ----經典的分布式文件系統:如Hadoop,OpenStack

 https://blog.csdn.net/wangshouxiang123/article/details/53906805    ----通俗易懂的分布式

http://bigdata.51cto.com/art/201804/571608.htm   ----大家常說的分布式系統

現在的架構很多,各種各樣的,如高並發架構、異地多活架構、容器化架構、微服務架構、高可用架構、彈性化架構等,還有和這些架構相關的管理型的技術方法,如 DevOps、應用監控、自動化運維、SOA 服務治理、去 IOE 等等,還有很多。

分布式系統是支持分布式處理的軟件系統,是由通信網絡互聯的多處理機體系結構上執行任務的系統。包括分布式操作系統、分布式程序設計語言及其編譯系統、分布式文件系統分布式數據庫系統等,當然這些也是分布式的關鍵技術。

使用分布式系統主要有:

1.增大系統容量。我們的業務量越來越大,而要能應對越來越大的業務量,一台機器的性能已經無法滿足了,我們需要多台機器才能應對大規模的應用場景。所以,我們需要垂直或是水平拆分業務系統,讓其變成一個分布式的架構。

2.加強系統可用。我們的業務越來越關鍵,需要提高整個系統架構的可用性,這就意味着架構中不能存在單點故障。這樣,整個系統不會因為一台機器出故障而導致整體不可用。所以,需要通過分布式架構來冗余系統以消除單點故障,從而提高系統的可用性。

3.因為模塊化,所以系統模塊重用度更高

4.因為軟件服務模塊被拆分,開發和發布速度可以並行而變得更快

5.系統擴展性更高

6.團隊協作流程也會得到改善

分布式系統的類型有三種:

1.分布式處理,但只有一個總數據庫,沒有局部數據庫

2.分層式處理,每一層都有自己的數據庫

3.充分分散的分布式網絡,沒有中央控制部分,各節點之間的聯系方式又可以有多種,如松散的聯接,緊密的聯接,動態的聯接,廣播通知式的聯接等

然后來對比一下單體應用和分布式架構的優缺點:

 

 

1.從上面的表格可以看到,分布式系統雖然有一些優勢,但也存在一些問題

2.架構設計變得復雜(尤其是其中的分布式事務)

3.部署單個服務會比較快,但是如果一次部署需要多個服務,部署會變得復雜

4.系統的吞吐量會變大,但是響應時間會變長

5.運維復雜度會因為服務變多而變得很復雜

6.架構復雜導致學習曲線變大

7.測試和查錯的復雜度增大

8.技術可以很多樣,這會帶來維護和運維的復雜度

9.管理分布式系統中的服務和調度變得困難和復雜

 

所以總結一下,分布式系統架構的難點在於系統設計,以及管理和運維。所以分布式系統架構在解決了一些問題的同時,也增加了其他的問題,這就需要不斷的再用各種各樣的技術跟手段去解決這些新增的問題。后續會跟上分布式系統架構的搭建以及使用。

 

在一個分布式系統中,一組獨立的計算機展現給用戶的是一個統一的整體,就好像是一個系統似的。系統擁有多種通用的物理和邏輯資源,可以動態的分配任務,分散的物理和邏輯資源通過計算機網絡實現信息交換。系統中存在一個以全局的方式管理計算機資源的分布式操作系統。通常,對用戶來說,分布式系統只有一個模型或范型。在操作系統之上有一層軟件中間件(middleware)負責實現這個模型。一個著名的分布式系統的例子是萬維網(World Wide Web),在萬維網中,所有的一切看起來就好像是一個文檔(Web頁面)一樣。

在計算機網絡中,這種統一性、模型以及其中的軟件都不存在。用戶看到的是實際的機器,計算機網絡並沒有使這些機器看起來是統一的。如果這些機器有不同的硬件或者不同的操作系統,那么,這些差異對於用戶來說都是完全可見的。如果一個用戶希望在一台遠程機器上運行一個程序,那么,他必須登陸到遠程機器上,然后在那台機器上運行該程序。

分布式系統和計算機網絡系統的共同點是:多數分布式系統是建立在計算機網絡之上的,所以分布式系統與計算機網絡在物理結構上是基本相同的。

他們的區別在於:分布式操作系統的設計思想和網絡操作系統是不同的,這決定了他們在結構、工作方式和功能上也不同。網絡操作系統要求網絡用戶在使用網絡資源時首先必須了解網絡資源,網絡用戶必須知道網絡中各個計算機的功能與配置、軟件資源、網絡文件結構等情況,在網絡中如果用戶要讀一個共享文件時,用戶必須知道這個文件放在哪一台計算機的哪一個目錄下;分布式操作系統是以全局方式管理系統資源的,它可以為用戶任意調度網絡資源,並且調度過程是"透明"的。當用戶提交一個作業時,分布式操作系統能夠根據需要在系統中選擇最合適的處理器,將用戶的作業提交到該處理程序,在處理器完成作業后,將結果傳給用戶。在這個過程中,用戶並不會意識到有多個處理器的存在,這個系統就像是一個處理器一樣。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM