一、RPC的定义
1、RPC(Romote Procedure Call):远程过程调用,允许一台计算机程序远程调用另外一台计算机的子程序,不用关心底层网络通信
2、应用:分布式网络通信
3、在Socket的基础上实现,比socket需要更多资源
4、可作为一种通信协议(Romote Procedure Call Protocol),远程过程调用协议,通过网络从远程计算机程序上请求服务
二、RPC的特点
1、透明性:调用其它机子的程序像用本地的一样
2、高性能:RPCserver服务器能并发处理多个Client请求
三、RPC的编程思想
1、仍然采用C/S编程模式,采用同步方式进行通信
2、允许本地程序Client调用存放于远程主机Service,和调用本地的没有区别
3、引入存根(stub)概念
存根:1)存在于服务器2)接受客户存根的请求3)和远程对象进行交互4)传送服务器相应到客户5)负责事物:解压客户端的输入远程方法的参数调用实际的远程对象的方法将结果打包返回给调用者
四、RPC的工作原理
1、发送方的地址空间中创建stub,接收方也创建一个
2、发送方和本地stub通信,本地stub在和接收方stub通信
3、将远程通信封装在stub中,发送方只和本地代理通信,接受方从本地stub获得所有请求
五、RPC的局限
1、客户端和服务器的计算机操作系统不一致会出现意想不到的错误
2、由于网络的复杂性,可能限制消息的尺寸,可能会丢失和重排消息
3、编程语言不同也会导致问题
4、由于是面向过程,所以近年来进展不大