分散式系統架構---SOA服務體系架構
一、 概述:
把系統按照模組拆分成多個子系統---面向服務的體系結構(SOA,即將整個功能模組拆分成不同的服務單元)。
優點:
1、把模組拆分,使用介面通訊,降低模組之間的耦合度。
2、把專案拆分成若干個子專案,不同的團隊負責不同的子專案。
3、增加功能時只需要再增加一個子專案,呼叫其他系統的介面就可以。
4、可以靈活的進行分散式部署。
缺點:
系統之間互動需要使用遠端通訊(dubbo),介面開發增加工作量。
二、不同規模的網站架構
1、單一應用架構
當網站流量很小時,只需一個應用,將所有功能都部署在一起,以減少部署節點和成本。
此時,用於簡化增刪改查工作量的 資料訪問框架(ORM) 是關鍵。
2、垂直應用架構
當訪問量逐漸增大,單一應用增加機器帶來的加速度越來越小,將應用拆成互不相干的幾個應用,以提升效率。
此時,用於加速前端頁面開發的 Web框架(MVC) 是關鍵。
3、分散式服務架構
當垂直應用越來越多,應用之間互動不可避免,將核心業務抽取出來,作為獨立的服務,逐漸形成穩定的服務中心,使前端應用能更快速的響應多變的市場需求。
此時,用於提高業務複用及整合的 分散式服務框架(RPC) 是關鍵。
4、流動計算架構
當服務越來越多,容量的評估,小服務資源的浪費等問題逐漸顯現,此時需增加一個排程中心基於訪問壓力實時管理叢集容量,提高叢集利用率。
此時,用於提高機器利用率的 資源排程和治理中心(SOA) 是關鍵
二、 dubbo服務中介軟體
Dubbo是阿里巴巴公司開源的一個高效能優秀的服務框架,使得應用可通過高效能的 RPC 實現服務的輸出和輸入功能,可以和Spring框架無縫整合。
1、 provider:服務提供方:將介面地址暴露到註冊中上。
2、 consumer:服務消費方:首先需要去監聽註冊中心,如果註冊中心上有服務消費方需要的服務,那麼就可以直接去呼叫。
3、 registry:註冊中心:容器(存放介面訊息)。在dubbo中,可以作為註冊中心:redis、multicast、zookeeper。管理服務。
4、 continaer:容器(服務執行的容器):Tomcat
5、 monitor:監控(軟體)
三、ZooKeeper
是一個分散式的,開放原始碼的分散式應用程式協調服務,它是一個為分散式應用提供一致性服務的軟體,提供的功能包括:配置維護、域名服務、分散式同步、組服務等。ZooKeeper的目標就是封裝好複雜易出錯的關鍵服務,將簡單易用的介面和效能高效、功能穩定的系統提供給使用者。