業界主流的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 |