对象序列化机制

高性能rpc 的关键技术之一 就是高效的对象序列化机制。

传统java的序列化机制。有两个问题。数据量大,传输效率低。 其他语言无法识别。
json 序列化存在占用空间大。性能低下。是因为有很多结构化的东西,各种符号。 但是可读性强。

高效的二进制编码协议:

开源的二进制序列化框架 messagepack 。 把数据分为定长和变长两个部分。定长就是表明数据类型和对应的值。变长多了一个个长度属性。表明数据的真实长度。

谷歌的protocol buffers编码协议。flatbuffer。 最终目的就是为了减小序列化话后的存储空间。

要做到多语言支持 必须用中立的第三方语言来描述协议。所以是需要各种变成语言,提供编码和解码的api方法。
就是将本语言的对象编码成序列化对象以用来在网络上传输 ,和将序列化对象解码成本语言的对象。

这点rpc框架thrift做多语言支持时候,用到了idl接口定义语言 也是这种类似的思想。 将接口文档语言,编译成相应语言定义的接口。以对客户端实现透明的代理。

你可能感兴趣的:(分布式系统)