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

    你可能感兴趣的文章
    OpenCV与AI深度学习 | CoTracker3:用于卓越点跟踪的最新 AI 模型
    查看>>
    OpenCV与AI深度学习 | OpenCV中八种不同的目标追踪算法
    查看>>
    OpenCV与AI深度学习 | OpenCV图像拼接--Stitching detailed使用与参数介绍
    查看>>
    OpenCV与AI深度学习 | OpenCV如何读取仪表中的指针刻度
    查看>>
    OpenCV与AI深度学习 | OpenCV常用图像拼接方法(一) :直接拼接
    查看>>
    OpenCV与AI深度学习 | OpenCV常用图像拼接方法(三):基于特征匹配拼接
    查看>>
    OpenCV与AI深度学习 | OpenCV常用图像拼接方法(二) :基于模板匹配拼接
    查看>>
    OpenCV与AI深度学习 | OpenCV常用图像拼接方法(四):基于Stitcher类拼接
    查看>>
    OpenCV与AI深度学习 | OpenCV快速傅里叶变换(FFT)用于图像和视频流的模糊检测(建议收藏!)
    查看>>
    OpenCV与AI深度学习 | PaddleOCR 2.9 发布, 正式开源文本图像智能分析利器
    查看>>
    OpenCV与AI深度学习 | SAM2(Segment Anything Model 2)新一代分割一切大模型介绍与使用(步骤 + 代码)
    查看>>
    OpenCV与AI深度学习 | T-Rex Label !超震撼 AI 自动标注工具,开箱即用、检测一切
    查看>>
    OpenCV与AI深度学习 | YOLO11介绍及五大任务推理演示(目标检测,图像分割,图像分类,姿态检测,带方向目标检测)
    查看>>
    OpenCV与AI深度学习 | YOLOv10在PyTorch和OpenVINO中推理对比
    查看>>
    OpenCV与AI深度学习 | YOLOv11来了:将重新定义AI的可能性
    查看>>
    OpenCV与AI深度学习 | YOLOv8自定义数据集训练实现火焰和烟雾检测(代码+数据集!)
    查看>>
    OpenCV与AI深度学习 | YOLOv8重磅升级,新增旋转目标检测,又该学习了!
    查看>>
    OpenCV与AI深度学习 | 一文带你读懂YOLOv1~YOLOv11(建议收藏!)
    查看>>
    OpenCV与AI深度学习 | 五分钟快速搭建一个实时人脸口罩检测系统(OpenCV+PaddleHub 含源码)
    查看>>
    OpenCV与AI深度学习 | 什么是 COCO 数据集?
    查看>>