• rpc的学习


    rpc(Remote process call 即远程过程调用)是一种请求-相应的协议, 主要使用于C/S架构中,使得分布式系统成为可能。由客户端发起请求,服务端调用各种参数处理请求,当服务器在处理请求时,客户端处于阻塞状态,除非发起一个异步请求。

    rpc的理论开始于1970年代,而具体的实现要开始于1980年代早期,随着面向对象编程的兴起,RMI广泛地被实现,尤其是CORBA和Java RMI。而2000年后,RMI们也随着互联网的兴起而逐渐衰落。

    rpc的劣势在于由于网络的不稳定性,远程调用可能出错。客户端需要处理许多可能的错误。rpc也不是一个标准,仅仅是一个idea。

    我使用的语言主要是Java,在Java中,RPC是基于面向对象技术的。Java也有RMI,因为使用面向对象语言,所以是面向对象的,可以把对象发送到网络中。关于rpc和rmi的区别可以看这篇 http://stackoverflow.com/questions/2728495/what-is-the-difference-between-java-rmi-and-rpc

    而详细的介绍在这边 https://www.cs.rutgers.edu/~pxk/416/notes/15-rpc.html

    RPC的过程:

    1. 客户端调用stub,通常是调用本地方法,把参数放入stub中
    2. stub把参数打包进一个信息,并发起一个call来发送信息,打包参数的过程叫做marshalling
    3. 客户端本地的操作系统 通过system call 把信息发送到服务器
    4. 服务器本地的操作系统把数据包发送至服务器stub
    5. 服务器stub解包
    6. 服务器调用过程,而返回值以相反的路径传回客户端

    而RESTful风格是一种替代。

  • 相关阅读:
    NET5 WebApi 解决跨域问题
    CentOS7安装MYSQL
    VMWare安装CentOS7
    MSSQL还原数据库,更改用户登陆权限
    Vue自定义页面路由
    解决VSCODE"因为在此系统上禁止运行脚本"报错
    简析 HTTP 2.0 多路复用
    Git放弃本地修改,强制拉取最新版
    eclipse安装OpenExplorer插件--快速打开文件目录
    git统计某段时间内代码的修改量/总代码量
  • 原文地址:https://www.cnblogs.com/andrew-chen/p/5334749.html
Copyright © 2020-2023  润新知