RPC基本介紹

RPC,即遠程過程調用(Remote Procedure Call),通常用於分佈式服務中。網絡

調用遠程服務的客戶端,像調用本地服務同樣調用遠程服務。
遠程服務的調用方式對客戶端是透明的。框架

現有的框架有阿里巴巴的Dubbo、Google的GRPC、Facebook的Thrift(支持各語言的通訊)等。分佈式

RPC能夠基於TCP或者UDP網絡協議實現,RPC協議有不少種,例如Hessian(二進制傳輸協議)、Google的protobuf等,甚至REST API。代理

基於Java的RPC的IO通訊模型有BIO和NIO,NIO如Mina、Netty。Dubbo就是基於Netty服務完成的NIO通訊。Dubbo通常經過zookeeper發佈服務。rpc

基於Java的實現方式是經過動態代理完成對網絡服務的請求和調用。it


概念和特色

RPC:阿里巴巴

  • 遠程服務調用,像調用本地服務同樣。原理

  • 用於構建分佈式服務。zookeeper

  • 透明化dubbo

案例

  • 阿里巴巴 hsf、dubbo

  • Facebook thrift

  • Google grpc

  • Twitter finagle

原理

Java方式:

  • 動態代理

  • 字節碼生成(?)

協議

  • Hessian

  • protobuf

  • thrift

  • avro

通訊方式

IO模型:NIO、BIO

框架:

  • NIO自研

  • Mina

  • Netty(HSF、Dubbo、finagle等)

發佈方式

zookeeper

相關文章
相關標籤/搜索