博客
关于我
RPC入门了解
阅读量:667 次
发布时间:2019-03-15

本文共 901 字,大约阅读时间需要 3 分钟。

远程过程调用(RPC)概述

远程过程调用(RPC)是一种技术协议,允许一个程序在不了解网络细节的情况下,将请求发送到网络上的另一台计算机上的程序。这种机制使得客户端能够轻松调用远程系统上的其他进程。

RPC是什么?

RPC一种将本地程序的操作扩展到远程系统的方式,其工作模式基于客户端-服务器模型。与传统本地过程调用不同,RPC需要客户端暂停并等待远程程序的返回值。这一点使得它更适合处理同步操作,但当涉及到对多个RPC请求的并发处理时,使用轻量级的进程或线程会更高效。

RPC的工作原理

RPC过程可以分为几个阶段:

  • 客户端调用存根程序:客户端将本地存根程序激活,并将请求参数推送至堆栈。
  • 数据打包与传递:存根程序将参数打包成消息,并通过本地OS发送到远程服务器。
  • 远程处理:服务器侧的存根程序接收消息,解组参数,并系统调用对应的远程程序进行处理。
  • 结果返回:处理完成后,服务器存根程序将结果封装并通过网络返回客户端。
  • RPC的五种类型

    RPC可操作的方式有多种:

  • 阻塞调用:客户端在发送请求后会被阻塞,直到接收到远程程序的返回结果。
  • 非阻塞调用:客户端可以继续处理其他操作,只需等待远程完成后进行处理。
  • 批处理:客户端可以对多个远程调用进行批量操作,提高效率。
  • 广播调用:客户端可以将同一消息发送至多个服务器,接收所有结果进行处理。
  • 关联调用:通过指定机制确保客户端能够跟踪特定的远程调用并接收相关返回值。
  • RPC的优点

  • 简化接口定义:利用IDL明确接口规范,便于跨平台兼容性,隐藏复杂性的消息传递。
  • 高效通信:通过省略传输层协议,提升性能。
  • 灵活性:支持流程和线程模型的切换。
  • 易用性:用户无需深入了解网络细节。
  • 可扩展性:适合分布式环境和本地使用。
  • RPC的缺点

  • 资源管理复杂性:跨机器的资源访问可能导致问题。
  • 通信错误敏感:因依赖网络传输,易受环境影响。
  • 实现多样性:由于无统一标准,实现方式各不相同。
  • 性能瓶颈:传输大量数据可能导致效率下降。
  • RPC技术通过简化远程调用流程,使得开发者能够方便地在分布式环境中对多种系统进行操作,同时它的客户端存根机制能够有效地桥梁不同操作系统之间的差异。

    转载地址:http://hqsmz.baihongyu.com/

    你可能感兴趣的文章
    Object.keys()的详解和用法
    查看>>
    objectForKey与valueForKey在NSDictionary中的差异
    查看>>
    Objective - C 小谈:消息机制的原理与使用
    查看>>
    OBJECTIVE C (XCODE) 绘图功能简介(转载)
    查看>>
    Objective-C ---JSON 解析 和 KVC
    查看>>
    Objective-C 编码规范
    查看>>
    Objective-Cfor循环实现Factorial阶乘算法 (附完整源码)
    查看>>
    Objective-C——判断对象等同性
    查看>>
    objective-c中的内存管理
    查看>>
    Objective-C之成魔之路【7-类、对象和方法】
    查看>>
    Objective-C享元模式(Flyweight)
    查看>>
    Objective-C以递归的方式实现二叉搜索树算法(附完整源码)
    查看>>
    Objective-C内存管理教程和原理剖析(三)
    查看>>
    Objective-C实现 Greedy Best First Search最佳优先搜索算法(附完整源码)
    查看>>
    Objective-C实现 jugglerSequence杂耍者序列算法 (附完整源码)
    查看>>
    Objective-C实现 lattice path格子路径算法(附完整源码)
    查看>>
    Objective-C实现1000 位斐波那契数算法(附完整源码)
    查看>>
    Objective-C实现2 个数字之间的算术几何平均值算法(附完整源码)
    查看>>
    Objective-C实现2d 表面渲染 3d 点算法(附完整源码)
    查看>>
    Objective-C实现2D变换算法(附完整源码)
    查看>>