今天看啥  ›  专栏  ›  大淘宝技术

HSF 序列化不可变集合类型问题原因分析

大淘宝技术  · 公众号  · 程序员  · 2025-08-29 18:20
    

主要观点总结

在使用 HSF 服务时,因使用 Java 9 的不可变集合(如 Set.of())作为参数,导致服务端反序列化失败的问题。原因是 HSF 默认使用的 Hessian2 序列化机制不支持 Java 默认序列化中通过 writeReplace 和 readResolve 实现的不可变集合序列化逻辑。解决方案是避免使用不可变集合,改用可变集合(如 HashSet)。

关键观点总结

关键观点1: 问题背景

在代码重构时,使用 Set.of() 构造的 Set 类型参数导致 HSF 服务端序列化异常。

关键观点2: 原因分析

HSF 使用的 Hessian2 序列化机制不支持 Java 9 引入的不可变集合,只支持通过 writeReplace 和 readResolve 方法实现的序列化逻辑。

关键观点3: 解决方案

改用可变集合(如 HashSet)作为参数,避免使用不可变集合。

关键观点4: 拓展阅读

介绍了作者蹇逸所在的团队以及 HSF hessian2 的序列化/反序列化流程。


免责声明:本文内容摘要由平台算法生成,仅为信息导航参考,不代表原文立场或观点。 原文内容版权归原作者所有,如您为原作者并希望删除该摘要或链接,请通过 【版权申诉通道】联系我们处理。

原文地址: 访问原文地址 (快捷配置)
总结与预览地址:访问文章预览/总结
文章地址: 访问文章快照