場景 什麼是分散式系統 分散式系統是若幹獨立電腦的集合,這些電腦對於用戶來說就像單個相關係統。 分散式系統是建立在網路之上的軟體系統。 註: 博客: https://blog.csdn.net/badao_liumang_qizhi 關註公眾號 霸道的程式猿 獲取編程相關電子書、教程推送與免費下 ...
場景
什麼是分散式系統
分散式系統是若幹獨立電腦的集合,這些電腦對於用戶來說就像單個相關係統。
分散式系統是建立在網路之上的軟體系統。
註:
博客:
https://blog.csdn.net/badao_liumang_qizhi
關註公眾號
霸道的程式猿
獲取編程相關電子書、教程推送與免費下載。
實現
單一應用架構
當網站流量很小時,只需一個應用,將所有功能都部署在一起,以減少部署節點和成本。此時,用於簡化增刪改查工作量的數據訪問框架(ORM)是關鍵。
單一應用結構特點
適用於小型網站,小型管理系統,將所有功能都部署到一個功能里,簡單易用。
缺點: 1、性能擴展比較難
2、協同開發問題
3、不利於升級維護
垂直應用結構
當訪問量逐漸增大,單一應用增加機器帶來的加速度越來越小,將應用拆成互不相干的幾個應用,以提升效率。此時,用於加速前端頁面開發的Web框架(MVC)是關鍵。
垂直應用結構特點
通過切分業務來實現各個模塊獨立部署,降低了維護和部署的難度,團隊各司其職更易管理,性能擴展也更方便,更有針對性。
缺點: 公用模塊無法重覆利用,開發性的浪費
分散式服務架構
當垂直應用越來越多,應用之間交互不可避免,將核心業務抽取出來,作為獨立的服務,逐漸形成穩定的服務中心,使前端應用能更快速的響應多變的市場需求。此時,用於提高業務復用及整合的分散式服務框架(RPC)是關鍵。
流動計算架構
當服務越來越多,容量的評估,小服務資源的浪費等問題逐漸顯現,此時需增加一個調度中心基於訪問壓力實時管理集群容量,提高集群利用率。此時,用於提高機器利用率的資源調度和治理中心(SOA)[ Service Oriented Architecture]是關鍵。
RPC
什麼叫RPC
RPC【Remote Procedure Call】是指遠程過程調用,是一種進程間通信方式,他是一種技術的思想,而不是規範。它允許程式調用另一個地址空間(通常是共用網路的另一臺機器上)的過程或函數,而不用程式員顯式編碼這個遠程調用的細節。即程式員無論是調用本地的還是遠程的函數,本質上編寫的調用代碼基本相同。
RPC基本原理
RPC舉例
A伺服器想要調用B伺服器的的方法,整個過程如下圖
由此可以看出RPC的兩個核心模塊是通訊和序列化。