- 问题
- 采用kryo序列化时,经常遇到的这样的报错
- 问题原因:
- 使用kryo姿势不正确
- 在构造Output时,使用的默认构造方法,遇到大对象时,导致缓冲区溢出
* 使用这样的方法,Output的默认最大maxBufferSize为4096字节
* 所以当遇到超过4096字节的对象时,会发生缓冲区溢出,所以会有那样的报错
- 本地测试结果:
- 解决问题
- 针对自己的业务场景,使用自定义缓冲区的构造函数代替默认的,如下图所示
* 使用这样的方法,Output的默认最大maxBufferSize为4096字节
* 所以当遇到超过4096字节的对象时,会发生缓冲区溢出,所以会有那样的报错