RPC的序列化

907 阅读1分钟

远程调用,意味着需要通过网络传输,那么对象就需要序列化为二进制。
典型的几种序列化框架:

  • JDK原生序列化
  • JSON【空间开销大、需要反射解决类型】
  • Hessian【不支持LinkedHashMap/Set、Byte/Short反序列化为Integer】

序列化框架原理
设计一种协议,将(对象类型,属性类型,属性值)按照固定格式写入二进制字节流。

RPC框架在序列化方面需要注意的问题

  • 对象过于复杂
  • 对象过大
  • 使用序列化框架不支持的类型
  • 对象继承关系复杂

总之,对象庞大复杂,类型不被支持,会出现序列化问题。因此,在使用RPC框架时,入参和返回值要构造的尽量简单。