dubbo和dubboX與微服務架構(dubbo一)

1、傳統三層架構模式的缺陷html

三層架構(3-tier architecture) 一般意義上的三層架構就是將整個業務應用劃分爲:界面層(User Interface layer)web、業務邏輯層(Business Logic Layer)service、數據訪問層(Data access layer)dao。java

區別於MVCweb

1)MVC中的模型(Model)指的是數據模型,用於封裝與應用程序的業務邏輯相關的數據,除此以外還能夠封裝數據的處理方法(至關於業務邏輯)。這是徹底區別於三層架構的模型層(Model)的。spring

MVC中模型(Model)的特色:數據庫

①有對數據直接訪問的權利,如:對數據庫的訪問;json

②模型(Model)「不依賴」視圖(View)和控制器(Controller),即模型(Model)不關心它會被如何顯示或者如何被操做;tomcat

③模型(Model)中數據的變化通常會經過一種刷新機制被「公佈」;服務器

④爲了實現③中的「機制」用於監視此模型的視圖必須事先在此模型上註冊。從而,視圖能夠了解在數據模型上發生的改變。網絡

2)視圖(View),這裏的視圖基本跟三層中的視圖同樣,都是爲了顯示數據,沒有程序上的邏輯。爲了實現視圖上數據的刷新,視圖(View)須要訪問它監視的模型(Model),因此應該事先在被它監視的數據那裏進行註冊。架構

3)控制器(Controller),這個概念是在三層中不存在的概念。它主要起到不一樣層面的組織做用,用於控制應用程序的流程。主要處理事件並做出相應。「事件」主要包括:用戶的行爲和數據的改變。

那麼具體的傳統的三層架構模式缺點有什麼呢?

一、全部的代碼都在同一個項目中維護,部署在同一個系統中

二、全部的代碼都在一個代碼庫,代碼量大,訪問人數多,致使訪問效率低下

三、分模塊開發,各模塊耦合度大,改一發動全身

四、多層間有交叉,致使同步改變,失去分層獨立性

五、代碼可讀性差(模塊耦合),運維團隊看不懂代碼

六、拆分多個子系統時,作公共代碼的服務化(解決重複性問題)量大

 

2、什麼是微服務架構?

 

 

從上圖能夠看出,微服務架構是:按功能拆分模塊,每一個模塊有 服務消費者和服務提供者兩個項目。

而且每一個模塊又是三層架構,服務提供者是service和dao層,服務消費者是web層。每一個模塊能夠獨立

技術選型,獨立開發,獨立部署,獨立運維。

 

3、爲何須要微服務架構?

  解決傳統三層架構的不足

 

4、微服務架構的優缺點

優勢:


一、每一個模塊(項目),能夠獨立技術選擇(語言、數據庫、架構),充分發揮各類語言技術的特長,博採衆長

二、每一個模塊都獨立開發,代碼量小,業務簡單,可控性強

三、服務模塊之間不用直接依賴,可使用一些服務治理框架來完成一個相似esb功能.

ESB全稱爲Enterprise Service Bus,即企業服務總線。它是傳統中間件技術與XML、Web服務等技術結合的產物。ESB提供了網絡中最基本的鏈接中樞,是構築企業神經系統的必要元素。ESB的出現改變了傳統的軟件架構,能夠提供比傳統中間件產品更爲廉價的解決方案,同時它還能夠消除不一樣應用之間的技術差別,讓不一樣的應用服務器協調運做,實現了不一樣服務之間的通訊與整合。從功能上看,ESB提供了事件驅動和文檔導向的處理模式,以及分佈式的運行管理機制,它支持基於內容的路由和過濾,具有了複雜數據的傳輸能力,並能夠提供一系列的標準接口。

四、隨着系統架構的演變,微服務架構是當今時代的產物。

系統架構演變圖

 

缺點:

由於每一個功能都是獨立服務,在一個大型項目中監控管理這些服務變得複雜,定位排除問題難度增大

 

5、架構使用場景

微服務架構使用大型項目

傳統三層架構使用中小型項目

 

6、什麼是微服務治理框架?


微服務治理框架就是在微服務架構中用來治理服務的框架

 

7、常見的服務治理框架

 1):dubbo

  國產,來自於阿里巴巴,開源,國內用的比較多。缺點是之前更新不及時,在2014年更新了2.4版本後一直到

2017年9月7日才發佈了2.5.4版本,三年沒更新。先出來的東西思想不是很先進。

2):spring cloud

  國外,開源,國外用的多,國內在逐漸流行。更新至關及時,後出來的思想較爲先進。學習難度較大。

Spring Cloud對於中小型互聯網公司來講是一種福音,由於這類公司每每沒有實力或者沒有足夠的資金投入去開發本身的

分佈式系統基礎設施,使用Spring Cloud一站式解決方案能在從容應對業務發展的同時大大減小開發成本。

 

8、什麼是dubbo?

 

  dubbo是服務治理框架,能夠與spring 無縫集成。是阿里巴巴SOA服務化治理方案的核心方案,天天爲2000+個服務提供

超過30億次的訪問量支持。有良好的實用價值。

  dubbo採用一種很是簡單的模型,要麼提供方提供服務,要麼消費方消費服務。因此基於這一點能夠抽象出服務方(provider)

和消費方(consumer)兩個角色。

 

9、dubbo能作什麼?

  一、解決URL強依賴,只依賴服務註冊中心。

  二、自動畫出依賴圖,理清調用關係

  三、支持集羣

 

10、dubboX是什麼?

  由於dubbo更新比較慢,在2014年更新2.4版本後2017年9月7日才發佈2.5.4版本。期間,噹噹網根據自身需求,

對dubbo進行了擴展,就是如今的dubboX

 

11、dubboX的主要功能有哪些?

  一、支持rest風格(http+json/xml)

  二、支持基於kryo和fst的java高效序列化的實現

  三、支持基於嵌入式tomcat的http remoting體系

  四、升級了spring,將dubbo的2.x版本升級到了3.x版本

  五、升級了服務註冊中心zookeeper客戶端,將dubbo中的zookeeper升級到了當時最新版本,以修正老版本中

包含的BUG

  六、dubboX和dubbo2.x是兼容的,沒有改變dubbo的任何功能和配置方式(除了升級spring之類版本)

相關文章
相關標籤/搜索