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

相关文章
相关标签/搜索