dubbo学习 三 dubbox概述
生活随笔
收集整理的這篇文章主要介紹了
dubbo学习 三 dubbox概述
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
當(dāng)當(dāng)網(wǎng)根據(jù)自身的需求,對dubbo進(jìn)行了擴(kuò)展就叫成了dubbox。具體的使用方法可以參照官網(wǎng)各種例子:http://dangdangdotcom.github.io/dubbox/
支持rest風(fēng)格遠(yuǎn)程調(diào)用
之前了解過restful服務(wù)具體是什么,resteasy也了解過,所以看到就可以理解。 基于非常成熟的之前看過的rest實(shí)現(xiàn)jboss-resteasy框架,他把這個(gè)框架集成到了dubbo里面實(shí)現(xiàn)了rest風(fēng)格的遠(yuǎn)程調(diào)用,這樣就大大簡化了服務(wù)的開發(fā)和更多類型的消費(fèi)者系統(tǒng)。也使dubbo可以對當(dāng)今特別流行的微服務(wù)架構(gòu)提供支持。但是由于restful服務(wù)的消費(fèi)端可能多種多樣,如果消費(fèi)端不是用dubbo的話,那么關(guān)于容錯(cuò)和負(fù)載均衡就得另想辦法了,因?yàn)閐ubbo自己的容錯(cuò)和負(fù)載是在消費(fèi)端調(diào)用的時(shí)候?qū)崿F(xiàn)的。需要考慮其他手段對多個(gè)服務(wù)端做負(fù)載了,nginx,f5什么的。?
支持基于Kryo和FST的Java高效序列化實(shí)現(xiàn)
關(guān)于序列化的一點(diǎn)東西,之前了解過,所以這里就可以看明白了。 下面的一些官網(wǎng)的摘抄 在dubbo RPC中,同時(shí)支持多種序列化方式,例如: dubbo序列化:阿里尚未開發(fā)成熟的高效java序列化實(shí)現(xiàn),阿里不建議在生產(chǎn)環(huán)境使用它 hessian2序列化:hessian是一種跨語言的高效二進(jìn)制序列化方式。但這里實(shí)際不是原生的hessian2序列化,而是阿里修改過的hessian lite,它是dubbo RPC默認(rèn)啟用的序列化方式 json序列化:目前有兩種實(shí)現(xiàn),一種是采用的阿里的fastjson庫,另一種是采用dubbo中自己實(shí)現(xiàn)的簡單json庫,但其實(shí)現(xiàn)都不是特別成熟,而且json這種文本序列化性能一般不如上面兩種二進(jìn)制序列化。 java序列化:主要是采用JDK自帶的Java序列化實(shí)現(xiàn),性能很不理想。 在通常情況下,這四種主要序列化方式的性能從上到下依次遞減。對于dubbo RPC這種追求高性能的遠(yuǎn)程調(diào)用方式來說,實(shí)際上只有1、2兩種高效序列化方式比較般配,而第1個(gè)dubbo序列化由于還不成熟,所以實(shí)際只剩下2可用,所以dubbo RPC默認(rèn)采用hessian2序列化。 但hessian是一個(gè)比較老的序列化實(shí)現(xiàn)了,而且它是跨語言的,所以不是單獨(dú)針對java進(jìn)行優(yōu)化的。而dubbo RPC實(shí)際上完全是一種Java to Java的遠(yuǎn)程調(diào)用,其實(shí)沒有必要采用跨語言的序列化方式(當(dāng)然肯定也不排斥跨語言的序列化)。 最近幾年,各種新的高效序列化方式層出不窮,不斷刷新序列化性能的上限,最典型的包括: 專門針對Java語言的:Kryo,FST等等 跨語言的:Protostuff,ProtoBuf,Thrift,Avro,MsgPack等等 這些序列化方式的性能多數(shù)都顯著優(yōu)于hessian2(甚至包括尚未成熟的dubbo序列化)。 有鑒于此,我們?yōu)閐ubbo引入Kryo和FST這兩種高效Java序列化實(shí)現(xiàn),來逐步取代hessian2。 其中,Kryo是一種非常成熟的序列化實(shí)現(xiàn),已經(jīng)在Twitter、Groupon、Yahoo以及多個(gè)著名開源項(xiàng)目(如Hive、Storm)中廣泛的使用。而FST是一種較新的序列化實(shí)現(xiàn),目前還缺乏足夠多的成熟使用案例,但我認(rèn)為它還是非常有前途的。 在面向生產(chǎn)環(huán)境的應(yīng)用中,我建議目前更優(yōu)先選擇Kryo。使用方法
?
?
?還有一些其他擴(kuò)展和優(yōu)化
支持基于Jackson的JSON序列化:基于業(yè)界應(yīng)用最廣泛的Jackson序列化庫,為Dubbo默認(rèn)的RPC協(xié)議添加新的JSON序列化實(shí)現(xiàn)。 支持基于嵌入式Tomcat的HTTP remoting體系:基于嵌入式tomcat實(shí)現(xiàn)dubbo的HTTP remoting體系(即dubbo-remoting-http),用以逐步取代Dubbo中舊版本的嵌入式Jetty,可以顯著的提高REST等的遠(yuǎn)程調(diào)用性能,并將Servlet API的支持從2.5升級到3.1。(注:除了REST,dubbo中的WebServices、Hessian、HTTP Invoker等協(xié)議都基于這個(gè)HTTP remoting體系)。 升級Spring:將dubbo中Spring由2.x升級到目前最常用的3.x版本,減少版本沖突帶來的麻煩。 升級ZooKeeper客戶端:將dubbo中的zookeeper客戶端升級到最新的版本,以修正老版本中包含的bug。 支持完全基于Java代碼的Dubbo配置:基于Spring的Java Config,實(shí)現(xiàn)完全無XML的純Java代碼方式來配置dubbo 調(diào)整Demo應(yīng)用:暫時(shí)將dubbo的demo應(yīng)用調(diào)整并改寫以主要演示REST功能、Dubbo協(xié)議的新序列化方式、基于Java代碼的Spring配置等等。 修正了dubbo的bug 包括配置、序列化、管理界面等等的bug。轉(zhuǎn)載于:https://www.cnblogs.com/liouwei4083/p/6127763.html
總結(jié)
以上是生活随笔為你收集整理的dubbo学习 三 dubbox概述的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 机顶盒改成无线打印服务器,将网络电视机顶
- 下一篇: 风变编程,帮助你从零开始学习编程