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

分佈式系統(distributed system)是創建在網絡之上的軟件系統。處理各項協助的任務,而後整合出結果。html

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.增大系統容量。咱們的業務量愈來愈大,而要能應對愈來愈大的業務量,一臺機器的性能已經沒法知足了,咱們須要多臺機器才能應對大規模的應用場景。因此,咱們須要垂直或是水平拆分業務系統,讓其變成一個分佈式的架構。ide

2.增強系統可用。咱們的業務愈來愈關鍵,須要提升整個系統架構的可用性,這就意味着架構中不能存在單點故障。這樣,整個系統不會由於一臺機器出故障而致使總體不可用。因此,須要經過分佈式架構來冗餘系統以消除單點故障,從而提升系統的可用性。模塊化

3.由於模塊化,因此係統模塊重用度更高微服務

4.由於軟件服務模塊被拆分,開發和發佈速度能夠並行而變得更快

5.系統擴展性更高

6.團隊協做流程也會獲得改善

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

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

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

3.充分分散的分佈式網絡,沒有中央控制部分,各節點之間的聯繫方式又能夠有多種,如鬆散的聯接,緊密的聯接,動態的聯接,廣播通知式的聯接等

而後來對比一下單體應用和分佈式架構的優缺點:

 

 

1.從上面的表格能夠看到,分佈式系統雖然有一些優點,但也存在一些問題

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

3.部署單個服務會比較快,可是若是一次部署須要多個服務,部署會變得複雜

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

5.運維複雜度會由於服務變多而變得很複雜

6.架構複雜致使學習曲線變大

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

8.技術能夠不少樣,這會帶來維護和運維的複雜度

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

 

因此總結一下,分佈式系統架構的難點在於系統設計,以及管理和運維。因此分佈式系統架構在解決了一些問題的同時,也增長了其餘的問題,這就須要不斷的再用各類各樣的技術跟手段去解決這些新增的問題。後續會跟上分佈式系統架構的搭建以及使用。

 

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

在計算機網絡中,這種統一性、模型以及其中的軟件都不存在。用戶看到的是實際的機器,計算機網絡並無使這些機器看起來是統一的。若是這些機器有不一樣的硬件或者不一樣的操做系統,那麼,這些差別對於用戶來講都是徹底可見的。若是一個用戶但願在一臺遠程機器上運行一個程序,那麼,他必須登錄到遠程機器上,而後在那臺機器上運行該程序。

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

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

相關文章
相關標籤/搜索