面向服務架構soa以其獨特的優點愈來愈受到企業的重視,它能夠根據需求經過網絡對鬆散耦合的粗粒度應用組件進行分佈式部署、組合和使用。服務層是SOA的基礎,能夠直接被應用調用,從而有效控制系統中與軟件代理交互的人爲依賴性。Soa的開發方法通常主要有開源的dubbo、dubbox、mule、wso二、cxf,以及付費的oracle soa、ibm soa等。html
SOA是一種粗粒度、鬆耦合服務架構,服務之間經過簡單、精肯定義接口進行通信,不涉及底層編程接口和通信模型。SOA能夠看做是B/S模型、XML(標準通用標記語言的子集)/Web Service技術以後的天然延伸。前端
SOA將可以幫助軟件工程師們站在一個新的高度理解企業級架構中的各類組件的開發、部署形式,它將幫助企業系統架構者以更迅速、更可靠、更具重用性架構整個業務系統。較之以往,以SOA架構的系統可以更加從容地面對業務的急劇變化。git
SOA的實施具備幾個鮮明的基本特徵。實施SOA的關鍵目標是實現企業IT資產的最大化做用。要實現這一目標,就要在實施SOA的過程當中牢記如下特徵:github
可從企業外部訪問web
隨時可用spring
粗粒度的服務接口分級數據庫
鬆散耦合apache
可重用的服務編程
服務接口設計管理後端
標準化的服務接口
支持各類消息模式
精肯定義的服務契約
SOA服務具備平臺獨立的自我描述XML文檔。Web服務描述語言(WSDL, Web Services Description Language)是用於描述服務的標準語言。
SOA 服務用消息進行通訊,該消息一般使用XML Schema來定義(也叫作XSD, XML Schema Definition)。消費者和提供者或消費者和服務之間的通訊多見於不知道提供者的環境中。服務間的通信也能夠看做企業內部處理的關鍵商業文檔。
在一個企業內部,SOA服務經過一個扮演目錄列表(directory listing)角色的登記處(Registry)來進行維護。應用程序在登記處(Registry)尋找並調用某項服務。統一描述,定義和集成(UDDI, Universal Description, Definition, and Integration)是服務登記的標準。
每項SOA服務都有一個與之相關的服務品質(QoS, quality of service)。QoS的一些關鍵元素有安全需求(例如認證和受權),可靠通訊(注:可靠消息是指,確保消息「僅且僅僅」發送一次,從而過濾重複信息。),以及誰能調用服務的策略。
隨着全球信息化的浪潮,信息化產業不斷髮展、延伸,已經深刻了衆多的企業及我的,SOA系統架構的出現,將給信息化帶來一場新的革命。
縱觀信息化建設與應用的歷程,儘管出現過XML(標準通用標記語言的子集)、Unicode、UML等衆多信息標準,可是許多異構系統之間的數據源仍然使用各自獨立的數據格式、元數據以及元模型,這是信息產品提供商一直以來造成的習慣。各個相對獨立的源數據集成一塊兒,每每經過構建必定的數據獲取與計算程序來實現,這樣的作法須要花費大量工做。信息孤島大量存在的事實,使信息化建設的ROI(投資回報率)大大下降,ETL成爲集中這些異構數據的有效工具。 ETL經常使用於從源系統中提取數據,將數據轉換爲與目標系統相兼容的格式,而後將其裝載到目標系統中。數據通過獲取、轉換、裝載後,要產生應用價值,還需另外的數據展示工具予以實現,如此複雜的數據應用過程,一定產生高昂的應用成本。
結構化的數據管理尚可經過以上方法,予以實現其集成應用。在非結構化的內容方面,這些具備挑戰性的問題使人生畏。內容管理的應用方案基於不一樣的信息化應用系統,並且大部分是縱向的以組織部門爲界限的。在內容管理市場中,常用來自不一樣廠商的產品來提供這些解決方案。即便是同一個廠商的產品,相互之間的功能也是常常重疊,而且沒法集成。
隨着信息化建設的深刻,不一樣應用系統之間的功能界限已趨於模糊。同時企業資源計劃系統和協同商務系統,又須要商業智能的分析展示數據提供用戶操做依據。
在激烈競爭且多變的市場環境下,企業的管理模式很難固化,應用傳統的信息化軟件,當企業要作出一些改動時須要面對巨大的挑戰。
2000年WebService出現後,SOA被譽爲下一代Web服務的基礎框架,已經成爲計算機信息領域的一個新的發展方向。
SOA的出現給傳統的信息化產業帶來新的概念,再也不是各自獨立的架構形式,可以輕鬆的互相聯繫組合共享信息。
可複用以往的信息化軟件。基於SOA的協同軟件提供了應用集成功能,可以將ERP、CRM、HR等異構系統的數據集成。
鬆散耦合方式,只要充分了解業務的進程,就能夠不用編寫一行代碼,經過流程圖實現一套咱們本身的信息系統。就像已經給你準備好了磚瓦和水泥,只須要想好蓋什麼樣的房子就能夠輕鬆的蓋起。加快開發速度,而且減小了開發和維護的費用。軟件將全部的管理提煉成表單和流程,以記錄管理的內容,指定過程的流轉方向。
更簡便的信息和數據集成。信息集成功能能夠將散落在廣域網和局域網上的文檔、目錄、網頁輕鬆集成,增強了信息的協同相關性。同時,複雜、成本高昂的數據集成,也變成了能夠簡單且低成本實現的參數設定。建立了徹底集成的信息化應用新領域。
在具體的功能實現上,SOA協同軟件所實現的功能包括了知識管理、流程管理、人事管理、客戶管理、項目管理、應用集成等,從部門角度看涉及了行政、後勤、營銷、物流、生產等。從應用思想上看,SOA協同軟件中的信息管理功能,全面兼顧了貫穿整個企業組織的信息化軟硬件投入。儘管各類IT技術能夠用於不一樣的用途,可是信息管理並無任意地將信息分爲結構化或者非結構化的部分,所以ERP等結構化管理系統並非信息化建設的所有;同時,信息管理也沒有將信息化解決方案劃分爲部門的視圖,所以僅僅以部分爲界限去構建軟件應用功能的思想未必是不可撼動的。基於SOA的協同軟件與 ERP、CRM等傳統應用軟件相比,關鍵的不一樣在於它能夠在合適的時間、合適的地點而且有正當理由向須要它提供服務的任何用戶提供服務。
利用SOA架構開發的優勢:
第1、更易維護
業務服務提供者和業務服務使用者的鬆散耦合關係及對開放標準的採用確保了該特性的實現。創建在以 SOA基礎上的信息系統,當需求發生變化的時候,不須要修改提供業務服務的接口,只須要調整業務服務流程或者修改操做便可,整個應用系統也更容易被維護。
第2、更高的可用性
該特色是在於服務提供者和服務使用者的鬆散耦合關係上得以發揮與體現。使用者無須瞭解提供者的具休實現細節。
第3、更好的伸縮性
依靠業務服務設計、開發和部署等所採用的架構模型實現伸縮性。使得服務提供者能夠互相彼此獨立地進行調整,以知足新的服務需求。
下面詳細論述幾種主要的開發方法和工具:
一. Dubbo。
DUBBO是淘寶公司的一個分佈式服務框架,致力於提供高性能和透明化的RPC遠程服務調用方案,以及SOA服務治理方案。淘寶公司的許多應用就是採用dubbo,運行穩定成功。如今,很多企業採用dubbo開發應用系統。Dubbo是簡單有效的soa架構,值得采用。
相比於其餘服務框架,DUBBO有以下優點:
v 透明化的遠程方法調用,就像調用本地方法同樣調用遠程方法,只需簡單配置,沒有任何API侵入;
v 軟負載均衡及容錯機制,可在內網替代F5等硬件負載均衡器,下降成本,減小單點;
v 服務自動註冊與發現,註冊中心基於接口名查詢服務提供者的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註冊中心安裝
n 建議使用dubbo-2.3.3以上版本的zookeeper註冊中心客戶端。
n Zookeeper是Apache Hadoop的子項目,強度相對較好,建議生產環境使用該註冊中心。
n 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管理控制檯管理和檢測。
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包。
完整的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等) 支持多部份內容的郵件傳輸(POP三、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能夠支持多種協議,好比:SOAP、XML/HTTP、RESTful HTTP 或者 CORBA ,而且能夠在多種傳輸協議上運行,好比:HTTP、JMS或者JBI,CXF大大簡化了Services的建立,同時它繼承了XFire傳統,同樣能夠自然地和Spring進行無縫集成。
功能特性
CXF 包含了大量的功能特性,可是主要集中在如下幾個方面:
支持Web Services標準:CXF支持多種Web Services標準,包含SOAP、BasicProfile、WS-Addressing、WS-Policy、WS-ReliableMessaging和 WS-Security。Frontends:CXF支持多種「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的類型綁定,好比:JSON和CORBA。
項目目標
下面列出了來自Apache CXF官方網站的項目目標。
概要
高性能可擴展簡單且容易使用支持多種標準
支持 JAX-WS、JAX-RS、JSR-181和 SAAJ;支持SOAP 1.一、1.二、WS-IBasicProfile、WS-Security、WS-Addressing、WS-RM 和 WS-Policy;支持WSDL 1.一、2.0;支持MTOM;
多種傳輸方式、Bindings、DataBindings和Format
Bindings:SOAP、REST/HTTP;DataBndings:目前支持JAXB 2.0、Aegis兩種,默認是JAXB 2.0。XMLBeans、Castor和JiBX數據綁定方式將在CXF 2.1版本中獲得支持;格式(Format):XML、JSON;傳輸方式:HTTP、Servlet、JMS和Jabber;可擴展的API容許爲CXF增長其它的Bindings,以可以支持其它的消息格式,好比:CSV和固定記錄長度。
2Apache CXF特色編輯
靈活部署
輕量級容器:可在Tomcat或基於Spring的容器中部署Services;集成JBI:能夠在如ServiceMix,OpenESB or Petals 等等的JBI容器中將它部署爲一個服務引擎;集成 SCA:能夠部署在如Tuscany之類的SCA容器中;集成J2EE:能夠在J2EE 應用服務器中部署 Services,好比:Geronimo、JOnAS、JBoss、WebSphereApplication Server 和WebLogic Application Server,以及Jetty和Tomcat;獨立的Java 客戶端/服務器。
支持多種編程語言
全面支持JAX-WS 2.0 客戶端/服務器編程模型;支持 JAX-WS 2.0 synchronous、asynchronous和one-way API's;支持JAX-WS 2.0 Dynamic Invocation Interface (DII) API;支持wrapped and non-wrapped風格;支持XML messaging API;支持JavaScript和ECMAScript 4 XML (E4X),客戶端與服務端均支持;經過Yoko支持CORBA;經過Tuscany支持SCA;經過ServiceMix支持JBI;
代碼生成
Java toWSDL;WSDLto Java;XSDto WSDL;WSDLto XML;WSDLto SOAP;WSDLto Service;
CXF 框架支撐環境
CXF 框架是一種基於 Servlet 技術的SOA應用開發框架,要正常運行基於 CXF應用框架開發的企業應用,除了 CXF框架自己以外,還須要JDK和Servlet容器的支持。
五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種主要的方法值得借鑑採用,相信必定會帶來極好的價值!
以上爲本人摘自電腦玩物網,做者:李萬鴻