V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
thomaswang
V2EX  ›  问与答

RPC 问题

  •  
  •   thomaswang · 2019-02-26 17:41:31 +08:00 · 1279 次点击
    这是一个创建于 2082 天前的主题,其中的信息可能已经有所发展或是发生改变。
    多主机之间的通讯常见的有 tcp,udp 嘛, 这样就需要我们在客户端和服务端做 socket 网络编程, 我们需要处理的比如粘包问题, 心跳, 加解密。。。, 那这个 rpc 是不是也是基于这些原理, 只是一个成熟的 RPC 框架(eg: gRpc), 他为我们处理好了这些东西(粘包, 心跳), 这样网络的难题 RPC 框架帮我们解决好了, 我们只需要关心自己的业务就行了, 我这样理解对吗
    7 条回复    2019-02-27 23:25:58 +08:00
    yuyueMJ
        1
    yuyueMJ  
       2019-02-26 22:26:53 +08:00
    我觉得 对。
    yuyueMJ
        2
    yuyueMJ  
       2019-02-26 22:28:07 +08:00
    补充一下,RPC 中,网络通信只是一方面,是最重要得一方面,剩下得还有序列化,执行代码。
    cpdyj0
        3
    cpdyj0  
       2019-02-26 22:51:54 +08:00 via Android
    网络通信是 RPC 最好解决的一部分,序列号和执行才是重点
    AngryPanda
        4
    AngryPanda  
       2019-02-26 22:54:43 +08:00 via Android
    http api 可以理解为一种 rpc,这个理解正确吗
    thomaswang
        5
    thomaswang  
    OP
       2019-02-27 10:53:35 +08:00
    @yuyueMJ 多谢, 序列化是指什么(eg: gRpc, 它是基于 http2.0 传输的, 是多路复用的,客户端需要把每个 stream 里面的 frame 排好序? 是这样理解吗), 这个执行代码是什么意思呢,大神赐教
    thomaswang
        6
    thomaswang  
    OP
       2019-02-27 10:54:10 +08:00
    @cpdyj0 序列号和执行如何理解
    cpdyj0
        7
    cpdyj0  
       2019-02-27 23:25:58 +08:00
    @thomaswang 写错了,,序列化,参数、返回值、meta 信息等需要编码后才可以在网络上传输,,手工编码数据很困难,你不会想这么做的。所以一般需要一个相对自动的方法把对象,入参等信息编码,在 Java 中一般使用反射。服务端需要反序列化然后执行,其他语言不了解,JVM 系中一般都是反射(语言特性)
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1012 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 19:43 · PVG 03:43 · LAX 11:43 · JFK 14:43
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.