zoukankan      html  css  js  c++  java
  • 什么是RPC

    RPC 是 Remote Procedure Call 的简写,也就是远程调用,它是一种进程间通讯方式,是一种技术思想,而不是规范。它允许程序调用另一个地址空间(通常是共享网络的另一台机器上)的过程或函数,而不用程序员显示编码这个远程调用的细节。

    也就是说两台服务器A,B,一个应用部署在A服务器上,想要调用B服务器上应用提供的函数/方法,由于不在一个内存空间,不能直接本地调用,需要通过网络来表达调用的语义和传达调用的数据。(通过网络传达调用的数据)

    为什么要用RPC呢?

    就是无法在一个进程内,甚至一个计算机内通过本地调用的方式完成的需要,比如不同的系统间的通讯,甚至不同的组织间的通讯,由于计算机能力需要横向拓展,需要在多台计算机组成的集群上部署应用。
    而RPC就是要向调用本地的函数一样去调用远程的函数

    步骤解析:

    1. 客户端调用 client (function)-> client Stub

    2. 序列化 client stub -> client socket

    3. 发送消息 client socket --(network)--> server socket

    4. 反序列化 server socket -> sever stub

    5. 调用server本地服务 server stub -> server (function)

    6. 服务处理 server

    7. 返回处理结果 并将结果序列化 server -> server stub ,server stub -> server socket

    8. 返回消息 server socket --(network)--> client socket

    9. 反序列化 client soket -> client stub

    10. 返回调用结果 client stub -> client

    这样的过程就是RPC

    所以RPC两个核心就是 通讯 和 序列化

    为什么序列化?

    序列化的目的就是为了方便传输

    什么是序列化?

    序列化:把对象转换为字节序列的过程称为对象的序列化。
    反序列化:把字节序列恢复为对象的过程称为对象的反序列化。

  • 相关阅读:
    Linux运维工程师需要掌握什么才能胜任工作呢
    我眼中的Linux系统和红帽RHCE认证
    Linux系统从零到高手的进阶心得
    我在大学毕业后学习Linux系统的心得经验
    装RAC跑脚本报错
    Oracle rac11g 安装报INS41112
    Oracle升级11.2.0.3-11.2.0.4(Windows)
    防存储掉线安装监控软件
    跨平台迁移数据库windows-Linux
    linux crontab -e生成日期格式
  • 原文地址:https://www.cnblogs.com/nineberg/p/12470117.html
Copyright © 2011-2022 走看看