RPC 学习笔记
RPC 是什么
RPC 是远程过程调用(Remote Procedure Call)的缩写形式。
RPC 的概念与技术早在 1981 年由 Nelson 提出。
1984 年,Birrell 和 Nelson 把其用于支持异构型分布式系统间的通讯。Birrell 的 RPC 模型引入存根进程(stub) 作为远程的本地代理,调用 RPC 运行时库来传输网络中的调用。Stub 和 RPC runtime 屏蔽了网络调用所涉及的许多细节,特别是,参数的编码/译码及网络通讯是由 stub 和 RPC runtime 完成的,因此这一模式被各类 RPC 所采用。
什么叫 RPC 呢?简单来说,就是“像调用本地方法一样调用远程方法”。
RPC 原理
核心是代理机制。
1.本地代理存根: Stub。
2.本地序列化反序列化。
3.网络通信。
4.远程序列化反序列化。
5.远程服务存根: Skeleton。
6.调用实际业务服务。
7.原路返回服务结果。
8.返回给本地调用方。
RPC 技术框架
Java 内置了 RPC 技术:
Java RMI
前辈们的一些尝试:
- Corba(Common ObjectRequest Broker Architecture)公共对象请求代理体系结构,OMG
组织在 1991 年提出的公用对象请求代理程序结构的技术规范。底层结构是基于面向对象模型的,
由 OMG 接口描述语言(OMG Interface Definition Language,OMG IDL)、对象请求代理
(Objec tRequest Broker,ORB)和 IIOP 标准协议(Internet Inter ORB Protocol,也称网络
ORB 交换协议)3 个关键模块组成。
- COM(Component Object Model,组件对象模型)是微软公司于 1993 年提出的一种组件技术,
它是一种平台无关、语言中立、位置透明、支持网络的中间件技术。
常见的 RPC 技术
- Corba/RMI/.NET Remoting
- JSON RPC, XML RPC,WebService(Axis2, CXF)
- Hessian, Thrift, Protocol Buffer, gRPC
版权声明: 本文为 InfoQ 作者【风翱】的原创文章。
原文链接:【http://xie.infoq.cn/article/e176cea2bad3373b8ab39133a】。文章转载请联系作者。
评论