RPC理解
来源:互联网 发布:matlab r2017 mac 编辑:程序博客网 时间:2024/05/19 21:02
1、 什么是RPC?
RPC全称是Remote Procedure Call Protocol指远程过程调用协议,是一种进程间通信方式,允许调用另一地址空间的过程或函数(通过网络),而不用程序员显示编码这个远程调用的细节,也就是说两台服务器A,B,一个应用部署在A服务器上,想要调用B服务器上应用提供的函数/方法,由于不在一个内存空间,不能直接调用,需要通过网络来表达调用的语义和传达调用的数据。
2、RPC需要解决的问题
1)首先,要解决通讯的问题,主要是通过在客户端和服务器之间建立TCP连接,远程过程调用的所有交换的数据都在这个连接里传输。连接可以是按需连接,调用结束后就断掉,也可以是长连接,多个远程过程调用共享同一个连接。
2)第二,要解决寻址的问题,也就是说,A服务器上的应用怎么告诉底层的RPC框架,如何连接到B服务器(如主机或IP地址)以及特定的端口,方法的名称名称是什么,这样才能完成调用。比如基于Web服务协议栈的RPC,就要提供一个endpoint URI,或者是从UDDI服务上查找。如果是RMI调用的话,还需要一个RMI Registry来注册服务的地址。
3)第三,当A服务器上的应用发起远程过程调用时,方法的参数需要通过底层的网络协议如TCP传递到B服务器,由于网络协议是基于二进制的,内存中的参数的值要序列化成二进制的形式,也就是序列化(Serialize)或编组(marshal),通过寻址和传输将序列化的二进制发送给B服务器。
4)第四,B服务器收到请求后,需要对参数进行反序列化(序列化的逆操作),恢复为内存中的表达方式,然后找到对应的方法(寻址的一部分)进行本地调用,然后得到返回值。
5)第五,返回值还要发送回服务器A上的应用,也要经过序列化的方式发送,服务器A接到后,再反序列化,恢复为内存中的表达方式,交给A服务器上的应用
3、为什么要有RPC
RPC 的主要功能目标是让构建分布式计算(应用)更容易,在提供强大的远程调用能力时不损失本地调用的语义简洁性。为实现该目标,RPC框架需提供一种透明调用机制让使用者不必显式的区分本地调用和远程调用。一个进程内,甚至一个计算机内通过本地调用的方式实现完成的需求,比如不同的系统间的通讯,甚至不同的组织间的通讯。由于计算能力需要横向扩展,需要在多台机器组成的集群上部署应用,就要用到RPC。
- RPC理解
- RPC理解
- hadoop的rpc理解
- android RPC深入理解
- 理解Binder RPC机制
- RPC的理解
- HDFS与RPC理解
- RPC架构简单理解
- rpc架构理解
- RPC的理解
- 理解Hadoop通信 RPC
- HBase RPC理解之一
- rpc的理解。
- 关于RPC的简单理解
- 一张图来理解RPC
- HBase RPC 理解之二
- 分布式 RPC架构简单理解
- Hadoop RPC框架简单理解
- Adobe CC 2017全套
- CCF 201709-02公共钥匙盒
- Diamod生成原理图文件
- 常用的状态码
- javaee学习日记之SSM环境搭建
- RPC理解
- Oracle to_char函数的使用方法
- ubuntu系统redis集群
- 为什么网易和常州贝特康姆软件技术有限公司都声称是前cn99,他们之间是什么关系
- 防止空连接跳转
- Appium client使用
- 简单规划Android项目的包
- 4.闭包
- 空城计049来了