1. 程式人生 > >應用服務架構演變史&&SOA架構&&Dubbox分散式服務架構原理與部署

應用服務架構演變史&&SOA架構&&Dubbox分散式服務架構原理與部署

SOA架構

SOA是Service-Oriented Architecture 是一種面向服務的分散式架構的治理系統確保架構有條不絮的演進.

1.應用服務架構的演變史

  • ORM單一應用架構:最開始資料量很小,系統中的所用的模組,功能全都放在同一臺機器上的架構
  • MVC垂直應用架構:隨著訪問量的逐漸增加,單一應用靠橫向增加機器的效果越來越小,我們可以將應用拆分為幾個互不相干的應用,以提升效率,此時用於加速前端頁面開發的Web框架MVC是關鍵
  • PRC遠端過程呼叫架構:垂直應用架構難以應付複雜的業務場景,團隊的協作效率差,公共功能重複開發越來越多的缺點暴露出來,引出了PRC架構,這時的架構已經有了服務的思想,垂直的應用之間必不可少有互動的地方,我們將核心業務抽取出來,作為獨立的服務,逐漸成為穩定的服務中心,使前端能更快速的相應多變的市場需求,此時,用於提高業務複用性的分散式服務框架(RPC)是關鍵
  • SOA服務化架構:RPC架構使服務之間的依賴關係變得錯綜複雜,很難分清哪個應用要再哪個應用前啟動,當呼叫量越來越大,服務的容量出現問題,不知道服務該加多少臺機器什麼時候加,好像服務治理問題應該解決一下,這時SOA服務化架構出場,SOA提供了服務註冊中心,動態的註冊和發現服務,介面之間通過明確的協議和介面進行通訊,為了達到系統的獨立性伸縮性更好的隔離和開發,把系統從兩個角度進行拆分,縱向拆分:根據業務的特性把業務不同的模組拆分成獨立的.橫向拆分:將核心,公共的業務拆分出來通過分散式服務框架對業務進行服務化,消費者通過標準的契約來消費這些服務.拆分之後隨著服務數的增多,需要一個服務治理框架,有效的管理服務,目前比較成熟的服務框架有Spring cloud 和阿里巴巴的Dubbo框架,和非開源的阿里巴巴的HSF框架,這些服務框架不僅實現了RPC的遠端服務呼叫方案,並且提供了服務治理和服務註冊中心這樣的SOA服務治理方案
  • 微服務:SOA解決了應用服務化的問題,隨著服務化的深入,服務治理的問題越來越多,這時候出現了微服務的思想,微服務架構是由多個微小的服務架構構成,每個服務就是一個可以獨立可部署的單元和元件,他們是分散式的互相解耦的,通過輕量級的遠端通訊協議來進行互動,每個服務可以用不同的資料庫,不同的語言,彼此微小輕量,但又方便組合和重構;Docker的出現讓微服務這麼火,因為Docker讓微服務有個完美的執行環境

總結:RPM單機時代-->垂直架構:系統根據業務拆分--->RPC分散式服務式思想的提出-->

SOA:RPC的服務治理架構--->微服務:一個個微小便於組合完全隔離的單元元件

 

2.Dubbox分散式服務框架

1.簡介

Dubbox是一個分散式服務框架 其前身是阿里巴巴開源專案Dubbo,後期阿里巴巴停止了該專案的維護,噹噹網便在Dubbo的基礎上進行優化,並繼續維護,為了與原有的Dubbo進行區分,顧將器命名為Dubbox

Dubbox致力於提供高效能和透明化的RPC遠端服務呼叫方案,以及SOA服務治理方案,簡單的說:Dubbox就是一個服務框架,如果沒有分散式的服務需求,是不需要的,只有在分散式的時候,才有Dubbox這樣的分散式服務框架的需求.本質上是個服務呼叫的東西,是個遠端服務呼叫的分散式框架

2.原理

節點說明:

  • Provider(供應商提供者):暴露服務的服務提供方
  • Consumer(消費者):呼叫遠端服務的服務消費方
  • Register:服務註冊與發現的註冊中心
  • Monitor(監視器):統計服務的呼叫次數和呼叫時間的監控中心
  • Container(容器):服務執行的容器

呼叫關係說明:

     0. start:服務容器負責啟動,載入,執行服務提供者

  1. register:服務提供者在啟動時,向註冊中心註冊自己提供的服務
  2. subscribe(訂購):服務消費者在啟動時,向註冊中心訂閱自己所需的服務
  3. notify(通知):註冊中心返回服務提供者地址列表給消費者.如果有變更,註冊中心將基於長連結推送變更資料給消費者
  4. invoke(呼叫):服務消費者從提供者的地址列表中,基於負載均衡演算法,選一臺提供者進行呼叫,如果呼叫失敗再選另一臺呼叫
  5. count:統計服務消費者和服務提供者累計呼叫次數和呼叫時間,定時每分鐘傳送一次統計資料到監控中心

 

3.服務註冊中心Zookeeper(動物園管理員)

1.介紹:

zookeeper是Apache Hadoop的子專案,是一個屬性的目錄服務,支援變更推送,並不是Dubbox生產出來的,Dubbox在選用註冊中心的時候候選的有zookeeper和Redis,最終權衡之後選了Zookeeper作為自己的註冊中心元件

2.Zookepper在linux系統上的安裝

步驟一:安裝JDK

步驟二:拷入Zookeepr的壓縮包並解壓.

步驟三:在解壓之後的資料夾下新建一個資料夾data用於存放登錄檔

步驟四:進入conf目錄,把zoo.sample.cfg檔案改名為zoo.cfg

步驟五:更改zoo.cfg配置檔案 宣告登錄檔存放的位置為剛才新建的data目錄,檢視連結的埠號

步驟六:進入bin目錄下 啟動zkService.sh檔案