RPC概念及分类

2019年6月21日 11:55

722

RPC的概念

Remote Procedure Calls远程过程调用 (RPC) 是一种协议,程序可使用这种协议向网络中的另一台计算机上的程序请求服务。由于使用 RPC 的程序不必了解支持通信的网络协议的情况,因此 RPC 提高了程序的互操作性。在 RPC 中,发出请求的程序是客户程序,而提供服务的程序是服务器。

RPC(远程过程调用)是一项广泛用于支持分布式应用程序(不同组件分布在不同计算机上的应用程序)的技术。是分布式系统常见的一种通信方法,已经有 40 多年历史。当两个物理分离的子系统需要建立逻辑上的关联时,RPC 是牵线搭桥的常见技术手段之一。RPC 的主要目的是为组件提供一种相互通信的方式,使这些组件之间能够相互发出请求并传递这些请求的结果。

RPC 在我们熟知的各种中间件中都有它的身影。Nginx/Redis/MySQL/Dubbo/Hadoop/Spark/Tensorflow 等重量级开源产品都是在 RPC 技术的基础上构建出来的,我们这里说的 RPC 指的是广义的 RPC,也就是分布式系统的通信技术。RPC 在技术中的地位好比我们身边的空气,它无处不在,但是又有很多人根本不知道它的存在。

RPC的分类

从通信协议的层面,大致可以分为:基于HTTP协议的(例如基于文本的SOAP(XML)、Rest(JSON),基于二进制Hessian(Binary))基于TCP协议的(通常会借助Mina、Netty等高性能网络框架)

从不同的开发语言和平台层面,分为:单种语言或平台特定支持的通信技术(例如Java平台的RMI、.NET平台Remoting)支持跨平台通信的技术(例如HTTP Rest、Thrift等)

从调用过程来看,分为:同步通信调用(同步RPC)异步通信调用(MQ、异步RPC)

常见的几种通信方式1. 远程数据共享(例如:共享远程文件,共享数据库等实现不同系统通信)2. 消息队列3. RPC(远程过程调用)

序列化/反序列化只有二进制数据才能在网络中传输,序列化和反序列化的定义是:将对象转换成二进制流的过程叫做序列化,将二进制流转换成对象的过程叫做反序列化。


相关文章


@ 2016 - 2020.神鸡IP代理,
All rights reserved.
鄂ICP备18017015号-4

禁止利用本站资源从事任何违反本国(地区)法律法规的活动
神鸡代理ip专业提供http代理ip地址,动态ip代理服务器实时更新