1. 程式人生 > >dubbo學習之分散式應用思想

dubbo學習之分散式應用思想

大型系統發展流程圖:

<1>all in one階段

所有的應用都部署在一臺伺服器上,適用與流量較小的應用

缺點:頁面,業務邏輯,資料庫等全部部署在一臺伺服器上,承載壓力的能力不足,系統的擴充套件能力不足。

<2>mvc階段

將應用拆分成獨立的應用,分別部署在不同的伺服器上,每個伺服器上的頁面,邏輯,資料庫,等配套齊全。

優點:承載能力有一定的提升,擴充套件能力有一定的提升

缺點:頁面,業務邏輯,資料庫等全部部署在一臺伺服器上,承載壓力的能力不足,系統的擴充套件能力不足。可能因為一個頁面的修改就導致需要伺服器重啟。

<3>rpc階段

將應用拆分成獨立的應用,分別部署在不同的伺服器上,將頁面拆分成獨立的檔案,分別部署在不同的伺服器上,

應用之間通過socket連結來建立通訊,達到各個應用之間的協調工作。

優點:承載能力進一步的提升,擴充套件能力進一步的提升

缺點:服務之間沒有一個統一的管理,容易造成資源的浪費

<4>soa階段

應用之間也是獨立部署,但是增加了資源的動態管理,方便調整資源的利用率。

SOA架構關鍵實現思路:

<1>應用a與應用b之間的通訊,依賴與網路通訊,兩者需要建立socket通訊

<2>通訊的資料之間需要序列化與反序列化,來完成資料在網路中的通訊

核心思路依賴與如上兩點。

rpc服務治理的效能瓶頸也依賴於上述兩點:

<1>如何實現高效能的網路通訊

<2>如何實現序列化之後的資料在網路上高效傳輸