在 Dubbo 框架中,可供开发者使用的序列化方案具体有哪些?请列举并简述各自适用的场景。
考察说明
考察对 Dubbo 序列化扩展机制及常见序列化方案的掌握程度。
回答思路
- 【回答框架 1】Dubbo 通过 SPI 机制支持多种序列化实现,常见包括 Hessian2、Fastjson、Kryo、FST、JDK 原生序列化等。默认序列化方式为 Hessian2,适用于跨语言、高性能传输场景。
- 【回答框架 2】Fastjson 基于 JSON 格式,可读性好,适合调试和与前端交互,但性能相对较低且存在安全漏洞风险。
- 【回答框架 3】Kryo 与 FST 均为高性能二进制序列化,适合对延迟和吞吐量要求较高的内部调用场景,但需注意兼容性和配置复杂度。
- 【回答框架 4】JDK 原生序列化使用简单,但效率低下且不支持跨语言,只适合本地测试或对性能不敏感的场景。
- 【回答框架 5】实际选用时需结合数据大小、网络带宽、性能要求、跨语言需求等因素综合评估。
- 【关键点 1】Dubbo 默认使用 Hessian2 序列化。
- 【关键点 2】支持 Fastjson、Kryo、FST、JDK 原生序列化等。
- 【关键点 3】性能与可读性通常成反比,需按场景选择。
- 【关键点 4】序列化方式可通过配置或 SPI 扩展自定义。
- 【易错点 1】不要一概而论说某序列化方式绝对最优,需结合具体场景评估。
- 【易错点 2】JDK 序列化性能低下且可能有安全风险,不适合生产环境高频调用。
- 【易错点 3】Kryo 等高性能序列化需注意类注册和兼容性问题。