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