業界主流的RPC框架有哪些?Dubbo與Hadoop RPC的區別?
近期在了解分散式框架,用於進行技術選型,有幾個問題想不通,特來請教!
1.Dubbo是一個相對用的比較多的分散式服務框架,主要用於實現RPC調用。但我看了一下Hadoop它是一個分散式應用框架,它也有Hadoop RPC框架,那麼Hadoop的RPC框架和Dubbo框架區別有哪些,為什麼在RPC分散式應用領域常聽到Dubbo而沒有Hadoop RPC呢?而Hadoop常用於數據計算。2.當前市面上用的較多的Java RPC框架除了Dubbo還有哪些?那些RPC框架的資料相對較多且用的人比較多?
第一個問題:Dubbo和Hadoop基本上就是兩個領域的產品,沒有太大的可比性。唯一能夠比較的是Dubbo和Hadoop內部使用的RPC組件:Avro。Avro多用於Hadoop內部,並沒有以獨立的RPC框架進行推廣和運作,因此你很少看到直接使用他的地方。類似的還有ZooKeeper的內置框架:jute。而Dubbo則是一個完整的RPC解決方案,包括純粹的遠程過程調用,以及簡單的服務治理。是阿里巴巴在2012年開源的框架。
第二個問題:阿里巴巴開源的Dubbo在國內是最流行的RPC框架,沒有之一,幾乎已經成了非商用RPC軟體事實上的標準。除去Dubbo外,業界還有不少RPC框架。
- 非商用領域
新浪的微博輕量級RPC框架Motan,噹噹網維護的dubbox, Go語言實現的RPCX,以及Google的開源框架gRPC。
- 商業領域
阿里巴巴的EDAS(企業級分散式應用服務EDAS_企業雲計算解決方案),號稱阿里巴巴內部第三代RPC框架。那第一代是什麼?Dubbo! (⊙﹏⊙)b)
你的問題有些描述不大準確,dubbo不是rpc框架,是soa服務化治理方案的核心框架。hadoop是分散式存儲框架。
你的兩個問題:
1.hadoop有用rpc,現在用的是avro,當然,舊版本也用過其他的rpc框架
2.dubbo也用rpc框架,很支持很多種,你看下圖吧:hadoop rpc只能使用在java間,不能跨語言,建議使用avro或者thrift
前段時間粗略學習了一下dubbo,感覺使用起來挺方便,但是由於dubbo對跨語言跨平台支持的不夠好無奈放棄。目前在學習zeroc ice,同類的RPC框架還有apache的avro還有thrift等
grpc的性能實在不敢恭維,dubbo和其他rpc框架相比性能表現的一般,並且貌似已經處於沒人維護的狀態。相比之下,百度開源的sofa-pbrpc GitHub - baidu/sofa-pbrpc: A light-weight RPC implement of google protobuf RPC framework. 在性能和穩定性上表現出色。而且支持protobuf協議和http協議,可以利用WebService輕鬆實現一個web server,具體可參考github
推薦閱讀:
※想要開發自己的PHP框架需要那些知識儲備?
※一名Infrastructure Engineer需要掌握哪些技術?
※作為WEB前端開發,大家都知道那些方便的js擴展庫呢?
※MVC到底是設計模式還是一種框架?
※有哪些優秀的 C/C++ 開源代碼框架?這些框架的設計思路是怎樣的?
TAG:框架 | Java | Hadoop | 遠程過程調用協議RPCRemoteProcedureCallProtocol | dubbo |