序列化的问题

来源:18-1 分布式系统简介

鱼右

2018-12-21

老师你好, 

1. 函数能不能直接被序列化呢? 就是不只序列化函数名称, 我想把整个函数都序列化可以吗?

2. 对象为什么不能直接在网络上传输呢?

谢谢老师!!!!

写回答

1回答

ccmouse

2018-12-23

网络上传输的是字节流。对象的内部很可能带有指针(即使你没有定义),这些指针里面的地址传到别的机器一定是无法访问的。
序列化就是把对象转成能够传输并且可以被反序列化复原的字节流。所以网络上传输一定要通过序列化反序列化。只是大部分情况,如果只是一些数据,字符串啥的,我们不需要考虑,系统会帮我们做。
函数就比较复杂了。它对应指令,指令还可以各种跳转,还会有环境的依赖,这些很难提供一个统一的序列化方法。所以往往需要我们对具体的函数进行自行设计。

0
3
ccmouse
回复
鱼右
protobuf也不能解决这个问题。他只是一个比json更省网络带宽的序列化方案。但是都是把内存的数据转化成字节流。
2018-12-29
共3条回复

Google资深工程师深度讲解Go语言 由浅入深掌握Go语言

语法+分布式爬虫实战 为转型工程师量身打造

5995 学习 · 1909 问题

查看课程