博客
关于我
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/

    你可能感兴趣的文章
    Notification 使用详解(很全
    查看>>
    NotImplementedError: Cannot copy out of meta tensor; no data! Please use torch.nn.Module.to_empty()
    查看>>
    NotImplementedError: Could not run torchvision::nms
    查看>>
    nova基于ubs机制扩展scheduler-filter
    查看>>
    Now trying to drop the old temporary tablespace, the session hangs.
    查看>>
    nowcoder—Beauty of Trees
    查看>>
    np.arange()和np.linspace()绘制logistic回归图像时得到不同的结果?
    查看>>
    np.power的使用
    查看>>
    NPM 2FA双重认证的设置方法
    查看>>
    npm build报错Cannot find module ‘webpack/lib/rules/BasicEffectRulePlugin‘解决方法
    查看>>
    npm build报错Cannot find module ‘webpack‘解决方法
    查看>>
    npm ERR! ERESOLVE could not resolve报错
    查看>>
    npm ERR! fatal: unable to connect to github.com:
    查看>>
    npm ERR! Unexpected end of JSON input while parsing near '...on":"0.10.3","direc to'
    查看>>
    npm ERR! Unexpected end of JSON input while parsing near ‘...“:“^1.2.0“,“vue-html-‘ npm ERR! A comp
    查看>>
    npm error Missing script: “server“npm errornpm error Did you mean this?npm error npm run serve
    查看>>
    npm error MSB3428: 未能加载 Visual C++ 组件“VCBuild.exe”。要解决此问题,1) 安装
    查看>>
    npm install CERT_HAS_EXPIRED解决方法
    查看>>
    npm install digital envelope routines::unsupported解决方法
    查看>>
    npm install 卡着不动的解决方法
    查看>>