1. 程式人生 > >淺談分散式架構的幾種主要開發方式

淺談分散式架構的幾種主要開發方式

 面向服務架構soa以其獨特的優勢越來越受到企業的重視,它可以根據需求通過網路對鬆散耦合的粗粒度應用元件進行分散式部署、組合和使用。服務層是SOA的基礎,可以直接被應用呼叫,從而有效控制系統中與軟體代理互動的人為依賴性。Soa的開發方法一般主要有開源的dubbodubboxmulewso2cxf,以及付費的oracle soaibm soa等。

        SOA是一種粗粒度、鬆耦合服務架構,服務之間通過簡單、精確定義介面進行通訊,不涉及底層程式設計介面和通訊模型。SOA可以看作是B/S模型、XML標準通用標記語言的子集)/Web Service技術之後的自然延伸。

       SOA

將能夠幫助軟體工程師們站在一個新的高度理解企業級架構中的各種元件的開發、部署形式,它將幫助企業系統架構者以更迅速、更可靠、更具重用性架構整個業務系統。較之以往,以SOA架構的系統能夠更加從容地面對業務的急劇變化。

SOA的實施具有幾個鮮明的基本特徵。實施SOA的關鍵目標是實現企業IT資產的最大化作用。要實現這一目標,就要在實施SOA的過程中牢記以下特徵:

可從企業外部訪問

隨時可用

粗粒度的服務介面分級

鬆散耦合

可重用的服務

服務介面設計管理

標準化的服務介面

支援各種訊息模式

精確定義的服務契約

SOA服務具有平臺獨立的自我描述XML文件。Web服務描述語言WSDLWeb Services Description Language

)是用於描述服務的標準語言。

SOA服務用訊息進行通訊,該訊息通常使用XML Schema來定義(也叫做XSDXML Schema Definition)。消費者和提供者或消費者和服務之間的通訊多見於不知道提供者的環境中。服務間的通訊也可以看作企業內部處理的關鍵商業文件。

在一個企業內部,SOA服務通過一個扮演目錄列表(directory listing)角色的登記處(Registry)來進行維護。應用程式在登記處(Registry)尋找並呼叫某項服務。統一描述,定義和整合(UDDIUniversal DescriptionDefinitionand Integration)是服務登記的標準。

每項SOA服務都有一個與之相關的服務品質(QoSquality of service)。QoS的一些關鍵元素有安全需求(例如認證和授權),可靠通訊(注:可靠訊息是指,確保訊息僅且僅僅傳送一次,從而過濾重複資訊。),以及誰能呼叫服務的策略。

隨著全球資訊化的浪潮,資訊化產業不斷髮展、延伸,已經深入了眾多的企業及個人,SOA系統架構的出現,將給資訊化帶來一場新的革命。

縱觀資訊化建設與應用的歷程,儘管出現過XML標準通用標記語言的子集)、UnicodeUML等眾多資訊標準,但是許多異構系統之間的資料來源仍然使用各自獨立的資料格式、元資料以及元模型,這是資訊產品提供商一直以來形成的習慣。各個相對獨立的源資料整合一起,往往通過構建一定的資料獲取與計算程式來實現,這樣的做法需要花費大量工作。資訊孤島大量存在的事實,使資訊化建設的ROI(投資回報率)大大降低,ETL成為集中這些異構資料的有效工具。ETL常用於從源系統中提取資料,將資料轉換為與目標系統相相容的格式,然後將其裝載到目標系統中。資料經過獲取、轉換、裝載後,要產生應用價值,還需另外的資料展現工具予以實現,如此複雜的資料應用過程,必定產生高昂的應用成本。

結構化的資料管理尚可通過以上方法,予以實現其整合應用。在非結構化的內容方面,這些具有挑戰性的問題令人生畏。內容管理的應用方案基於不同的資訊化應用系統,而且大部分是縱向的以組織部門為界限的。在內容管理市場中,經常使用來自不同廠商的產品來提供這些解決方案。即使是同一個廠商的產品,相互之間的功能也是經常重疊,並且無法整合。

隨著資訊化建設的深入,不同應用系統之間的功能界限已趨於模糊。同時企業資源計劃系統和協同商務系統,又需要商業智慧的分析展現資料提供使用者操作依據。

在激烈競爭且多變的市場環境下,企業的管理模式很難固化,應用傳統的資訊化軟體,當企業要做出一些改動時需要面對巨大的挑戰。

2000WebService出現後,SOA被譽為下一代Web服務的基礎框架,已經成為計算機資訊領域的一個新的發展方向。

SOA的出現給傳統的資訊化產業帶來新的概念,不再是各自獨立的架構形式,能夠輕鬆的互相聯絡組合共享資訊。

可複用以往的資訊化軟體。基於SOA協同軟體提供了應用整合功能,能夠將ERPCRMHR等異構系統的資料整合。

鬆散耦合方式,只要充分了解業務的程序,就可以不用編寫一行程式碼,通過流程圖實現一套我們自己的資訊系統。就像已經給你準備好了磚瓦和水泥,只需要想好蓋什麼樣的房子就可以輕鬆的蓋起。加快開發速度,並且減少了開發和維護的費用。軟體將所有的管理提煉成表單和流程,以記錄管理的內容,指定過程的流轉方向。

更簡便的資訊和資料整合。資訊整合功能可以將散落在廣域網和區域網上的文件、目錄、網頁輕鬆整合,加強了資訊的協同相關性。同時,複雜、成本高昂的資料整合,也變成了可以簡單且低成本實現的參數設定。建立了完全整合的資訊化應用新領域。

在具體的功能實現上,SOA協同軟體所實現的功能包括了知識管理、流程管理、人事管理、客戶管理、專案管理、應用整合等,從部門角度看涉及了行政、後勤、營銷、物流、生產等。從應用思想上看,SOA協同軟體中的資訊管理功能,全面兼顧了貫穿整個企業組織的資訊化軟硬體投入。儘管各種IT技術可以用於不同的用途,但是資訊管理並沒有任意地將資訊分為結構化或者非結構化的部分,因此ERP等結構化管理系統並不是資訊化建設的全部;同時,資訊管理也沒有將資訊化解決方案劃分為部門的檢視,因此僅僅以部分為界限去構建軟體應用功能的思想未必是不可撼動的。基於SOA的協同軟體與 ERP、CRM等傳統應用軟體相比,關鍵的不同在於它可以在合適的時間、合適的地點並且有正當理由向需要它提供服務的任何使用者提供服務。

利用SOA架構開發的優點:
  第一、更易維護
  業務服務提供者和業務服務使用者的鬆散耦合關係及對開放標準的採用確保了該特性的實現。建立在以 SOA基礎上的資訊系統,當需求發生變化的時候,不需要修改提供業務服務的介面,只需要調整業務服務流程或者修改操作即可,整個應用系統也更容易被維護。
  第二、更高的可用性
  該特點是在於服務提供者和服務使用者的鬆散耦合關係上得以發揮與體現。使用者無須瞭解提供者的具休實現細節。
  第三、更好的伸縮性
  依靠業務服務設計、開發和部署等所採用的架構模型實現伸縮性。使得服務提供者可以互相彼此獨立地進行調整,以滿足新的服務需求。

下面詳細論述幾種主要的開發方法和工具:

一.       Dubbo

DUBBO是淘寶公司的一個分散式服務框架,致力於提供高效能和透明化的RPC遠端服務呼叫方案,以及SOA服務治理方案。淘寶公司的許多應用就是採用dubbo,執行穩定成功。現在,不少企業採用dubbo開發應用系統。Dubbo是簡單有效的soa架構,值得采用。

相比於其他服務框架,DUBBO有如下優勢:

透明化的遠端方法呼叫,就像呼叫本地方法一樣呼叫遠端方法,只需簡單配置,沒有任何API侵入;

軟負載均衡及容錯機制,可在內網替代F5等硬體負載均衡器,降低成本,減少單點;

服務自動註冊與發現,註冊中心基於介面名查詢服務提供者的IP地址,並且能夠平滑新增或刪除服務提供者。

其核心部分包含:

n  遠端通訊:提供對多種基於長連線的NIO框架抽象封裝,包括多種執行緒模型,序列化,以及“請求-響應”模式的資訊交換方式。

n  叢集容錯:提供基於介面方法的透明遠端過程呼叫,包括多協議支援,以及軟負載均衡,失敗容錯,地址路由,動態配置等叢集支援。

n  自動發現:基於註冊中心目錄服務,使服務消費方能動態的查詢服務提供方,使地址透明,使服務提供方可以平滑增加或減少機器。

Dubbo如下功能:

n  透明化的遠端方法呼叫,就像呼叫本地方法一樣呼叫遠端方法,只需簡單配置,沒有任何API侵入。

n  軟負載均衡及容錯機制,可在內網替代F5等硬體負載均衡器,降低成本,減少單點。

n  服務自動註冊與發現,不再需要寫死服務提供方地址,註冊中心基於介面名查詢服務提供者的IP地址,並且能夠平滑新增或刪除服務提供者。

Dubbo基本原理-分散式服務框架

 

快速啟動

Dubbo採用全Spring配置方式,透明化接入應用,對應用沒有任何API侵入,只需用Spring載入Dubbo的配置即可,Dubbo基於Spring的Schema擴充套件進行載入。

服務提供者:定義服務介面

定義服務介面:(該介面需單獨打包,在服務提供方和消費方共享)

在服務提供方實現介面

在服務提供方實現介面:(對服務消費方隱藏實現)

用Spring配置宣告暴露服務

載入Spring配置

服務消費者:

載入Spring配置,並呼叫遠端服務:(也可以使用IoC注入)

Zookeeper註冊中心安裝

建議使用dubbo-2.3.3以上版本的zookeeper註冊中心客戶端。

Zookeeper是Apache Hadoop的子專案,強度相對較好,建議生產環境使用該註冊中心。

Dubbo未對Zookeeper伺服器端做任何侵入修改,只需安裝原生的Zookeeper伺服器即可,所有註冊中心邏輯適配都在呼叫Zookeeper客戶端時完成。

開源網址:

http://alibaba.github.io/dubbo-doc-static/Home-zh.htm

Zookeeper下載地址:

http://zookeeper.apache.org/releases.html

Zookeeper註冊中心安裝:

http://alibaba.github.io/dubbo-doc-static/Zookeeper+Registry+Installation-zh.htm

二.       Mule

   Mule是一個以Java為核心的輕量級的訊息框架和整合平臺,基於EIP(Enterprise Integeration Patterns,由Hohpe和Woolf編寫的一本書)而實現的。Mule的核心元件是UMO(UniversalMessage Objects,從Mule2.0開始UMO這一概念已經被元件Componse所代替),UMO實現整合邏輯。UMO可以是POJO,JavaBean等等。它支援30多種傳輸協議(file,FTP,UDP,TCP,email,HTTP,SOAP,JMS等),並整合了許多流行的開源專案,比如Spring,ActiveMQ,CXF,Axis,Drools等。 

  Mule Studio是一個功能強大、使用者介面友好的基於Eclipse的開發工具。使用者不需要深入瞭解Mule的XML配置語法,就可以在幾分鐘內輕鬆的建立、編輯、測試Mule ESB流程。Mule Studio基於Eclipse技術,包含3個主要部件:專案結構樹、工具箱和畫布。專案結構樹包含整個專案的目錄結構。

Mule是一個企業服務匯流排(ESB)訊息框架.它的主要特性包括:

1.基於J2EE1.4的企業訊息匯流排(ESB)和訊息代理(broker).
2.可插入的連線性:比如Jms,jdbc,tcp,udp,multicast,http,servlet,smtp,pop3,file,xmpp等.
3.支援任何傳輸之上的非同步,同步和請求響應事件處理機制.
4.支援Axis或者Glue的Web Service. 
5.靈活的部署結構[Topologies]包括Client/Server,P2P, ESB 和Enterprise Service Network. 
6.與Spring 框架整合:可用作ESB 容器,也可以很容易的嵌入到Spring應用中.
7.使用基於SEDA處理模型的高度可伸縮的企業伺服器.
8.強大的基於EIP模式的事件路由機制等.

wso2

WSO2ESB是一種根據ApacheV2.0許可證釋出的快速、輕量級和靈活的企業服務匯流排產品。使用ESB在HTTP、HTTPS、JMS、mail等協議基礎上通過業務系統過濾、轉換、路由和處理SOAP,二進位制、純XML和文字訊息。

WSO2ESB是一個為企業準備的完全成熟的ESB。WSO2ESB是建立在Apache Synapse專案基礎上的。Apache Synapse是使用Apache Axis2建立的。

應用程式傳送訊息到ESB,該訊息由ESB  Transport撿起。

Transport通過訊息管道傳送訊息。像安全和可靠的訊息傳遞的資訊方面的質量受到這個pipe的照顧。在該pipe內部是axis2的流入和流出流。ESB可以有如下兩種操作:

訊息中介:使用單管道

代理服務:使用獨立的管道運輸到不同的代理服務。

訊息轉換和訊息路由可以看做一個獨立的單元。如圖所示,訊息轉換元件和路由元件之間沒有明顯的分離。WSO2ESB呼叫這個中介框架。一些轉換髮生在路由決定之前,一些轉換髮生在路由決定之後。這一部分由Synapse執行。

然後根據目的地將訊息注入到獨立的管道。在這裡再次確定訊息服務方面的質量。

傳輸層負責通過ESB所需的傳輸協議的轉換。

該圖顯示瞭如何通過ESB的體系架構將請求傳到一個實際的endpoint。響應處理是這個操作的反向操作。

所有這些元件可以通過WSO2ESB管理控制檯管理和檢測。

ESB Components

Transports

WSO2ESB支援所有廣泛使用的傳輸協議包括HTTP/s、JMS、VFS和特定領域的傳輸如FIX。一個新的傳輸協議使用axis2傳輸框架輕鬆地被新增和插入到ESB中。不同的傳輸工具為ESB帶來各種訊息內容/負載。

傳輸內容:

訊息建設者:允許使用內容型別標識訊息並使變成普通的XML訊息集。因此每個內容型別都有相關聯的建設者。WSO2ESB包含基於文字的內容資訊的建設者和二進位制內容建設者。

訊息格式:建設者的相反的搭檔。格式化程式通過指出傳輸協議處理前訊息內容的型別將訊息轉換回原始格式。類似transport的使用者可以使用axis2框架實現訊息的建設和格式化。

參閱Transports

端點(Endpoints)

Endpoints作為具有傳輸協議的邏輯元件。兩套端點地址和WSDL。地址endpoint可以使用任何可用的transport排程訊息。

參閱Endpoints

代理服務(ProxyServices)

在WSO2ESB中代理服務是實現使用訊息接收器和開放接收訊息的虛擬服務。一個代理服務可以使用類似於一個普通的web服務地址的url訪問。代理服務允許將WSDL釋出到用於先前使用的程式組。可以使用任何可用的傳輸協議從代理服務接收和傳送訊息。

參閱 Proxy Services Sample

主題(Topics)

Topics是另一個恢復訊息處理事件的實施,包括subscription和events.

參閱eventing

中介(Mediators)

WSO2ESB的power仍然是為不同方面提供服務的全面調節庫。使用mediator庫實現廣泛使用MEPs和EIPs。由於WSO2ESB提供了一個健康的框架,使得開發者寫一個mediator非常容易。mediators可以使用包括Java,scripting和Spring的各種技術。

參閱mediator

序列(Sequences)

Sequence充當mediators的配置元件。Sequence允許阻止mediators實現管道和過濾模式。

參閱Sequences

任務和命令(Tasksand Commands)

Tasks提供在WSO2ESB中配置計劃工作的設施並且允許執行mediation的內部或外部命令。

參閱Tasks

QoS元件(QoSComponents)

Qos元件實現可靠的訊息傳遞和代理服務自帶的Apache的Rempart和Sandesha兩個實現模組的安全性。

配置、庫/註冊(Configuration,Repository/Registry)

Configuration是ESB架構的架構圖。WSO2ESB提供了一個內建的 Repository/Registry儲存配置和配置元資料,而且提供了使用遠端庫設施。

管理和配置介面(Managementand Configuration GUI)

有助於在生產環境中執行WSO2ESB元件可以在元件中找到。這些元件實現叢集、高可用性和負載平衡功能。

GUI元件進行綜合管理、配置和檢測GUI。GUI通過分離前端和後端的關注實現了分層架構。這允許使用者使用一個GUI控制檯連線到多個後臺。

WSO2ESB基於元件的體系結構加強了使用OSGi的鬆耦合性質。所有元件都建為OSGi包。

ESB特點(ESB Features)

完整的XML和Web服務支援

藉助內建的XML、名稱空間、XPath、XSLT、XQuery,WSO2ESB支援XML的處理需求。同時也能夠很大程度上處理非XML的內容。

WSO2ESB主要支援的服務標準:

SOAP1.1/ SOAP1.2

WSDL1.1/WSDL1.2

WS定址(支援雙通道呼叫)

使用Apache Smart的安全的WS

使用Apache Sandesha2可靠的WS訊息

使用Apache Savan的WS事件和WSO2事件

WS策略(支援傳入/傳出的訊息分離策略)

MTOM/SwA優化二進位制訊息

XML/HTTP(POX)

REST格式

經驗證的互操作性

基於通用的Apache Synapse和Apache Axis2專案,WSO2ESB已經證明含有Microsoft.NET的Web服務堆疊的互操作性

高效能

WSO2ESB優化了使用最少資源低延遲支援高吞吐量。可以使用連線節流支援成千上萬的併發連線,以及使用一個恆定的內從佔有的大量訊息使用連線節流。非阻塞的IO和XML流組合的解析設計意味著ESB按照需求縮放而且仍能表現的很好。

最小定製開發

WSO2ESB旨在輕鬆的支援常見的要求,同時可能要擴充套件其功能。

這些功能:

基於內容的路由

虛擬化服務

負載平衡

傳送故障

協議轉化

傳送訊息

日誌記錄&檢測

訊息分裂和聚合

企業整合模式

節流要求

響應快取

可擴充套件性

可以使用簡單的Java擴充套件功能、POJO類、Spring以及使用JavaScript、Ruby或其它Apache BSF指令碼語言擴充套件

多協議

支援以下內建協議整合存在的網路、夥伴及新工程

非阻塞的HTTPs協議

1.0和1.1的交易JMS傳輸二進位制、文字和SOAP訊息

Apache VFS檔案傳輸(如:S/FTP、檔案、zip/tar/gz、WebDAV、CIFS等)

支援多部分內容的郵件傳輸(POP3、IMAP、SMTP)

AMQP通過Apache QPid

金融資訊交換(FIX)

Web服務的Hessian二進位制協議

任務排程

支援管理經常性工作,通過ESB允許定期更新這些任務計劃作為cron守護程序或簡單重複的任務支援

事件驅動架構

內建的Qpid代理人作為事件代理人很容易實現使用EDA技術的企業整合。事件通過代理人可以調解執行釋出之前的任何需求改變

內建的登錄檔

WSO2ESB附帶一個整合的WSO2登錄檔,並且輕鬆的實現連線到外部/遠端登錄檔

高階調解&EIP

WSO2ESB還內建了支援讀取或寫入到資料庫,以及到Java/POJO類或指令碼中呼叫。它也提供訊息拆分、聚合、快取和限制可以輕鬆的配置能力。

產業驅動協議

支援產業帶動財政資訊交換(FIX)協議使財政部分一體化和Hessian web服務協議支援二進位制訊息格式。AMQP、VFS和JMS作為運輸企業整合。

國際化圖形控制檯

WSO2ESB提供了一整套的管理服務和一個圖形化使用者介面配置/管理/監測執行的WSO2ESB伺服器。此圖形控制檯可以很容易的當後臺執行在伺服器上時與後臺分離。可以在桌面上安裝國際化的圖形控制檯而且還可以用於管理叢集中的節點

序列編輯器

代理服務編輯器

端點/本地註冊編輯器

任務排程

內建的登錄檔瀏覽器

策略編輯器

預定義的安全方案

使用者儲存

值儲存

配置資料來源

運輸管理

服務嘗試

日誌、追蹤和監測統計

服務管理

有力的通過管理控制檯和JMX停止和重啟ESB

系統監控

WSO2 ESB內通過JMX管理控制檯以及配備了全面的監測能力。這些監控功能包括:

系統狀態

系統統計圖表

調解統計圖表

調解追蹤

SOAP追蹤

日誌配置和監控

cxf

ApacheCXF是一個開源的Services框架,CXF幫助您利用Frontend 程式設計 API來構建和開發Services,像JAX-WS。這些Services可以支援多種協議,比如:SOAPXML/HTTPRESTful HTTP或者 CORBA ,並且可以在多種傳輸協議上執行,比如:HTTPJMS或者JBICXF大大簡化了Services的建立,同時它繼承了XFire傳統,一樣可以天然地和Spring進行無縫整合。

功能特性

CXF包含了大量的功能特性,但是主要集中在以下幾個方面:

支援Web Services標準:CXF支援多種Web Services標準,包含SOAPBasicProfileWS-AddressingWS-PolicyWS-ReliableMessaging WS-SecurityFrontendsCXF支援多種“Frontend”程式設計模型,CXF實現了JAX-WS API(遵循JAX-WS 2.0 TCK版本),它也包含一個“simplefrontend”允許客戶端EndPoint的建立,而不需要Annotation註解。CXF既支援 WSDL優先開發,也支援從Java的程式碼優先開發模式。容易使用:CXF設計得更加直觀與容易使用。有大量簡單的API用來快速地構建程式碼優先的Services,各種Maven的外掛也使整合更加容易,支援 JAX-WS API,支援Spring 2.0更加簡化的XML配置方式,等等。支援二進位制和遺留協議:CXF的設計是一種可插撥的架構,既可以支援XML,也可以支援非XML的型別繫結,比如:JSONCORBA

專案目標

下面列出了來自Apache CXF官方網站的專案目標。

概要

高效能可擴充套件簡單且容易使用支援多種標準

支援 JAX-WSJAX-RSJSR-181 SAAJ;支援SOAP 1.11.2WS-IBasicProfileWS-SecurityWS-AddressingWS-RM WS-Policy;支援WSDL 1.12.0;支援MTOM

多種傳輸方式、BindingsDataBindingsFormat

BindingsSOAPREST/HTTPDataBndings:目前支援JAXB 2.0Aegis兩種,預設是JAXB 2.0XMLBeansCastorJiBX資料繫結方式將在CXF 2.1版本中得到支援;格式(Format):XMLJSON;傳輸方式:HTTPServletJMSJabber;可擴充套件的API允許為CXF增加其它的Bindings,以能夠支援其它的訊息格式,比如:CSV和固定記錄長度。

2Apache CXF特點編輯

靈活部署

輕量級容器:可在Tomcat或基於Spring的容器中部署Services;整合JBI:可以在如ServiceMix,OpenESB or Petals等等的JBI容器中將它部署為一個服務引擎;整合SCA:可以部署在如Tuscany之類的SCA容器中;整合J2EE:可以在J2EE 應用伺服器中部署Services,比如:GeronimoJOnASJBossWebSphereApplication ServerWebLogic Application Server,以及JettyTomcat;獨立的Java 客戶端/伺服器。

支援多種程式語言

全面支援JAX-WS 2.0 客戶端/伺服器程式設計模型;支援JAX-WS 2.0 synchronousasynchronousone-way API's;支援JAX-WS 2.0 Dynamic Invocation Interface (DII) API;支援wrapped and non-wrapped風格;支援XML messaging API;支援JavaScriptECMAScript 4 XML (E4X),客戶端與服務端均支援;通過Yoko支援CORBA;通過Tuscany支援SCA;通過ServiceMix支援JBI

程式碼生成

Java toWSDLWSDLto JavaXSDto WSDLWSDLto XMLWSDLto SOAPWSDLto Service

CXF框架支撐環境

CXF 框架是一種基於Servlet技術的SOA應用開發框架,要正常執行基於CXF應用框架開發的企業應用,除了CXF框架本身之外,還需要JDKServlet容器的支援。

dubbox

噹噹網我們根據自身的需求,為Dubbo實現了一些新的功能,並將其命名為Dubbox(即DubboeXtensions)。

主要的新功能包括:

·       支援REST風格遠端呼叫(HTTP +JSON/XML):基於非常成熟的JBoss RestEasy框架,在dubbo中實現了REST風格(HTTP + JSON/XML)的遠端呼叫,以顯著簡化企業內部的跨語言互動,同時顯著簡化企業對外的Open API、無線API甚至AJAX服務端等等的開發。事實上,這個REST呼叫也使得Dubbo可以對當今特別流行的“微服務”架構提供基礎性支援。 另外,REST呼叫也達到了比較高的效能,在基準測試下,HTTP+ JSON與Dubbo 2.x預設的RPC協議(即TCP + Hessian2二進位制序列化)之間只有1.5倍左右的差距,詳見下文的基準測試報告。

·       支援基於Kryo和FST的Java高效序列化實現:基於當今比較知名的Kryo和FST高效能序列化庫,為Dubbo 預設的RPC協議新增新的序列化實現,並優化調整了其序列化體系,比較顯著的提高了Dubbo RPC的效能,詳見下圖和文件中的基準測試報告。

·       支援基於嵌入式Tomcat的HTTP remoting體系:基於嵌入式tomcat實現dubbo的HTTP remoting體系(即dubbo-remoting-http),用以逐步取代Dubbo中舊版本的嵌入式Jetty,可以顯著的提高REST等的遠端呼叫效能,並將Servlet API的支援從2.5升級到3.1。(注:除了REST,dubbo中的WebServices、Hessian、HTTP Invoker等協議都基於這個HTTP remoting體系)。

·       升級Spring:將dubbo中Spring由2.x升級到目前最常用的3.x版本,減少專案中版本衝突帶來的麻煩。

·       升級ZooKeeper客戶端:將dubbo中的zookeeper客戶端升級到最新的版本,以修正老版本中包含的bug。

注:dubbox和dubbo 2.x是相容的,沒有改變dubbo的任何已有的功能和配置方式(除了升級了Spring之類的版本)。另外,dubbox也嚴格遵循了Apache 2.0許可證的要求。

總之,soa架構具有鬆耦合、高複用、開發、維護靈活方便、支援多平臺多系統、對原系統良好支援、消除資訊孤島等許多優點,以dubbo為代表的開發方法有一百多種,以上5種主要的方法值得借鑑採用,相信一定會帶來極好的價值!