RPC 问题

2019-02-26 17:41:31 +08:00
 thomaswang
多主机之间的通讯常见的有 tcp,udp 嘛, 这样就需要我们在客户端和服务端做 socket 网络编程, 我们需要处理的比如粘包问题, 心跳, 加解密。。。, 那这个 rpc 是不是也是基于这些原理, 只是一个成熟的 RPC 框架(eg: gRpc), 他为我们处理好了这些东西(粘包, 心跳), 这样网络的难题 RPC 框架帮我们解决好了, 我们只需要关心自己的业务就行了, 我这样理解对吗
1200 次点击
所在节点    问与答
7 条回复
yuyueMJ
2019-02-26 22:26:53 +08:00
我觉得 对。
yuyueMJ
2019-02-26 22:28:07 +08:00
补充一下,RPC 中,网络通信只是一方面,是最重要得一方面,剩下得还有序列化,执行代码。
cpdyj0
2019-02-26 22:51:54 +08:00
网络通信是 RPC 最好解决的一部分,序列号和执行才是重点
AngryPanda
2019-02-26 22:54:43 +08:00
http api 可以理解为一种 rpc,这个理解正确吗
thomaswang
2019-02-27 10:53:35 +08:00
@yuyueMJ 多谢, 序列化是指什么(eg: gRpc, 它是基于 http2.0 传输的, 是多路复用的,客户端需要把每个 stream 里面的 frame 排好序? 是这样理解吗), 这个执行代码是什么意思呢,大神赐教
thomaswang
2019-02-27 10:54:10 +08:00
@cpdyj0 序列号和执行如何理解
cpdyj0
2019-02-27 23:25:58 +08:00
@thomaswang 写错了,,序列化,参数、返回值、meta 信息等需要编码后才可以在网络上传输,,手工编码数据很困难,你不会想这么做的。所以一般需要一个相对自动的方法把对象,入参等信息编码,在 Java 中一般使用反射。服务端需要反序列化然后执行,其他语言不了解,JVM 系中一般都是反射(语言特性)

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/538965

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX