admin管理员组文章数量:1536086
2024年3月14日发(作者:)
远程过程调用rpc协议出
错
篇一:远程过程调用 RPC
远程过程调用RPC
一、概述
在传统的编程概念中,过程是由程序员在本地编译完
成,并只能局限在本地运行的一段代码,也即其主程序和过
程之间的运行关系是本地调用关系。因此这 种结构在网络
日益发展的今天已无法适应实际需求。总而言之,传统过程
调用模式无法充分利用网络上其他主机的资源(如CPU、
Memory等),也无法提高 代码在实体间的共享程度,使得
主机资源大量浪费。
而本文要介绍的RPC编程,正是很好地解决了传统过
程所存在的一系列弊端。通过RPC我们可以充分利用非共
享内存的多处理器环境(例如通过局域网 连接的多台工作
站),这样可以简便地将你的应用分布在多台工作站上,应用
程序就像运行在一个多处理器的计算机上一样。你可以方便
的实现过程代码共享,提高 系统资源的利用率,也可以将
以大量数值处理的操作放在处理能力较强的系统上运行,从
1
而减轻前端机的负担。
二、RPC的结构原理及其调用机制
如前所述RPC其实也是一种C/S的编程模式,有点类
似C/S Socket 编程模式,但要比它更高一层。当我们在建
立RPC服务以后,客户端的调用参数通过底层的RPC传输
通道,可以是UDP,也可以是TCP(也即TI-RPC —无关
性传输),并根据传输前所提供的目的地址及RPC上层应用
程序号转至相应的RPC Application Porgramme Server ,
且此时的客户端处于等待状态,直至收到应答或Time Out
超时信号。具体的流程图如图1。当服务器端获得了请求消
息,则会根据注册RPC时告诉RPC系统的例程入口地址,
执行相应的操作,并将结果返回至客 户端。
图1
当一次RPC调用结束后,相应线程发送相应的信号,
客户端程序才会继续运行。
当然,一台服务主机上可以有多个远程过程提供服务,
那么如何来表示一个唯一存在的远程过程呢?一个远程过
程是有三个要素来唯一确定的:程序号、版本号和过程号。
程序号是用来区别一组相关的并且具有唯一过程号的远程
过程。一个程序可以有一个或几个不同的版本,而每个版本
的程序都包含一系列能被远程调 用的过程,通过版本的引
入,使得不同版本下的RPC能同时提供服务。每个版本都
2
版权声明:本文标题:远程过程调用rpc协议出错 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/dianzi/1710416405a264454.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论