冬渐暖
需要二次解码的原因
1.一次解码是封装成帧,用那三种编码器去读数据,decoder传进来的原始数据--》最终是字节
2.二次是把字节转成其它的东西,比如对象
关于将两次解码不推荐合二为一的原因,还是类似于不用mvc。容易层次不清,耦合度高,下次不用byteBuffer就要在这里面改来改去
常见的二次解码的方式有
●Java序列化(原生,jdk自带的):implements Serializable。占用的空间比较大。。。但我平常代码里都是用这个。。。
●Marshaling:jboos的,一看来源就知道不是什么好东西,但是比原生的jdk自带的肯定好点
●XML:易读,但是占用空间大
●JSON
●MessagePack:占的比json小,可读性比json辣鸡
●Protobuf:占用最小,可读性最咸鱼。序列化无论是大数据还是小数据都是最优的,反序列化就不是最好的
个人拙见,如果叫我用,我肯定优先MessagePack,占用比json小不说,可读性也是能读的。
其次考虑json或者Protobuf。可读性在某方面斟酌下还是可以舍弃的
就像您之前说的,像netty,性能要做就要做到最优!
而且,我完全可以先不管能不能看得懂这些一阶段的数据,再二次编码之后转成对象就好了。可读性是对程序员dedbug方便,但是我们是要拿东西给用户用,能省一点是一点
作者回复: 如果让我用,我还是喜欢json,但是如果提供给别人用,肯定还是protobuf。你说的感性,但是很靠谱。