好程式設計師Java學習路線分享SpringCloud
一、Web應用架構的演變
隨著網際網路的發展,網站應用的規模不斷擴大,Web應用架構也在不斷的演變四個階段:單一應用、垂直應用、分散式服務、流動計算
1. 單一應用架構
當網站訪問量很小時,只需要一個應用程式,將所有的功能都部署在一起,以減少部署節點和成本 此時關鍵問題:簡化資料庫操作,資料訪問框架ORM是核心
適用場景:小型網站、管理系統、簡易辦公系統
侷限:
- 擴充套件性差
- 不便於協同開發
- 不利於升級維護
2. 垂直應用架構
當訪問量逐漸增大,單一應用(單機)負載太大,此時可以增加伺服器來進行負載均衡,提高響應速度,即集
群
但是,當增加的伺服器到達一定資料時所帶來的加速度會越來越小,此時單純的增加伺服器已無法明顯提升響 應速度
此時,需要將系統業務拆分成多個 互不相關的 系統,分別部署在獨立的伺服器上,以提升效率,稱為垂直應
用
此時關鍵問題:加速前端頁面開發MVC框架(MVVM)
優點:通過拆分專案的業務,實現業務上的獨立,降低了開發和維護的難度,便於協同開發,提高了擴充套件性
侷限:每個垂直模組中都有相同的內容(entity、dao、service、web),公共資源無法複用,且業務邏輯與界 面無法分離
3. 分散式服務架構
當垂直應用越來越多,應用之間的互動無法避免,有些業務系統無法完全拆分為獨立系統。
此時,可以將核心業務抽取出現,作為獨立的服務Service,逐漸的形成穩定的服務中心,使前端應用能夠更 好的適應市場需要的變化。
此時關鍵問題:提高業務的利用以及整合分散式服務框架RPC(Remote Procedure Call 遠端過程呼叫)
4. 流動計算架構
當服務越來越多,服務之間的呼叫和依賴關係也越來越複雜,誕生了面向服務聽架構體系(SOA: Service
Oriented Architecture )
容量的評估,小服務資源的浪費等問題開始出現,此時需要增加一個排程中心,基於訪問壓力實時的管理集 群容量,提高叢集利用率
此時關鍵問題:資源排程和治理中心,使用springCloud+zookeeper
二、RPC簡介
1. RPC是什麼
RPC:Remote Procedure Call 遠端過程呼叫是一種程序間的通訊方式
它允許應用程式呼叫網路上的另一個應用程式中的方法
對於服務的消費者而言,無需瞭解遠端呼叫的底層細節,透明的
2. 執行流程
執行流程:
-
- 客戶端發起呼叫請求
- 客戶端存根 對請求引數(介面、方法、引數等)進行序列化(封裝)
- 客戶端存根向 伺服器存根 傳送訊息
- 服務端存根 對接收到的訊息 進行反序列化