中间件之RPC

 

一、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、由于是面向过程,所以近年来进展不大

posted @ 2017-05-18 19:43  qz18  阅读(2272)  评论(0编辑  收藏  举报