1. 程式人生 > >好程式設計師Java學習路線分享SpringCloud

好程式設計師Java學習路線分享SpringCloud

一、Web應用架構的演變

隨著網際網路的發展,網站應用的規模不斷擴大,Web應用架構也在不斷的演變四個階段:單一應用、垂直應用、分散式服務、流動計算

1. 單一應用架構

當網站訪問量很小時,只需要一個應用程式,將所有的功能都部署在一起,以減少部署節點和成本 此時關鍵問題:簡化資料庫操作,資料訪問框架ORM是核心

適用場景:小型網站、管理系統、簡易辦公系統

 

侷限:

  1. 擴充套件性差
  2. 不便於協同開發
  3. 不利於升級維護

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. 執行流程

執行流程:

    1. 客戶端發起呼叫請求
    2. 客戶端存根 對請求引數(介面、方法、引數等)進行序列化(封裝)
    3. 客戶端存根向 伺服器存根 傳送訊息
    4. 服務端存根 對接收到的訊息 進行反序列化