1. 程式人生 > 其它 >1.演變概述

1.演變概述

目錄

1.什麼是分散式系統?

dubbo官方文件:http://dubbo.apache.org/zh-cn/docs/user/preface/background.html

《分散式系統原理與範型》定義:

“分散式系統是若干獨立計算機的集合,這些計算機對於使用者來說就像單個相關係統”

分散式系統(distributed system)是建立在網路之上的軟體系統。

分散式:

就是將兩個或多個程式、功能分別執行在兩臺主機伺服器上,這些伺服器對外提供的功能並不一樣,他們通過相互協作最終完成某一服務或功能。

小結:如果兩臺伺服器部署的程式完全一樣是叢集,不一樣是分散式。分散式中的每一個節點(伺服器),都可以做叢集,而叢集並不一定就是分散式。

分散式架構:

分散式系統設計的本質就是:如何合理的將一個系統拆分為多個子系統部署到多臺不同的伺服器上,需要解決如下幾個問題:

  1. 如何合理的拆分系統;
  2. 拆分後的各個子系統之間如何通訊;
  3. 通訊過程如何防止資訊攔截和篡改等安全問題;
  4. 如何適應不斷增長的業務需求,使其具有良好的可擴充套件性;
  5. 如何保證子系統的可靠性和資料的最終一致性;

隨著網際網路的發展,網站應用的規模不斷擴大,常規的垂直應用架構已無法應對,分散式服務架構以及流動計算架構勢在必行,亟需一個治理系統確保架構有條不紊的演進。

2.發展演變

單一應用架構

當網站流量很小時,只需一個應用,將所有功能都部署在一起,以減少部署節點和成本。此時,用於簡化增刪改查工作量的資料訪問框架(ORM)是關鍵。

適用於小型網站,小型管理系統,將所有功能都部署到一個功能裡,簡單易用。

缺點:
1、效能擴充套件比較難

​ 2、協同開發問題

​ 3、不利於升級維護

垂直應用架構

當訪問量逐漸增大,單一應用增加機器帶來的加速度越來越小,將應用拆成互不相干的幾個應用,以提升效率。此時,用於加速前端頁面開發的Web框架(MVC)是關鍵。

通過切分業務來實現各個模組獨立部署,降低了維護和部署的難度,團隊各司其職更易管理,效能擴充套件也更方便,更有針對性。

缺點: 公用模組無法重複利用,開發性的浪費

分散式服務架構

當垂直應用越來越多,應用之間互動不可避免,將核心業務抽取出來,作為獨立的服務,逐漸形成穩定的服務中心,使前端應用能更快速的響應多變的市場需求。此時,用於提高業務複用及整合的分散式服務框架(RPC)

是關鍵。

流動計算架構

當服務越來越多,容量的評估,小服務資源的浪費等問題逐漸顯現,此時需增加一個排程中心基於訪問壓力實時管理叢集容量,提高叢集利用率。此時,用於提高機器利用率的資源排程和治理中心(SOA)[ Service Oriented Architecture]是關鍵