dubbo學習之分散式應用思想
阿新 • • 發佈:2018-12-13
大型系統發展流程圖:
<1>all in one階段
所有的應用都部署在一臺伺服器上,適用與流量較小的應用
缺點:頁面,業務邏輯,資料庫等全部部署在一臺伺服器上,承載壓力的能力不足,系統的擴充套件能力不足。
<2>mvc階段
將應用拆分成獨立的應用,分別部署在不同的伺服器上,每個伺服器上的頁面,邏輯,資料庫,等配套齊全。
優點:承載能力有一定的提升,擴充套件能力有一定的提升
缺點:頁面,業務邏輯,資料庫等全部部署在一臺伺服器上,承載壓力的能力不足,系統的擴充套件能力不足。可能因為一個頁面的修改就導致需要伺服器重啟。
<3>rpc階段
將應用拆分成獨立的應用,分別部署在不同的伺服器上,將頁面拆分成獨立的檔案,分別部署在不同的伺服器上,
應用之間通過socket連結來建立通訊,達到各個應用之間的協調工作。
優點:承載能力進一步的提升,擴充套件能力進一步的提升
缺點:服務之間沒有一個統一的管理,容易造成資源的浪費
<4>soa階段
應用之間也是獨立部署,但是增加了資源的動態管理,方便調整資源的利用率。
SOA架構關鍵實現思路:
<1>應用a與應用b之間的通訊,依賴與網路通訊,兩者需要建立socket通訊
<2>通訊的資料之間需要序列化與反序列化,來完成資料在網路中的通訊
核心思路依賴與如上兩點。
rpc服務治理的效能瓶頸也依賴於上述兩點:
<1>如何實現高效能的網路通訊
<2>如何實現序列化之後的資料在網路上高效傳輸