写点什么

RPC 学习笔记

作者:风翱
  • 2021 年 12 月 11 日
  • 本文字数:694 字

    阅读完需:约 2 分钟

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


发布于: 1 小时前阅读数: 4
用户头像

风翱

关注

还未添加个人签名 2017.11.24 加入

勇于尝试,持续成长

评论

发布
暂无评论
RPC学习笔记