dubbo支持哪些序列化的协议?

2 个回答

  • 叶家少主
    世界上没有快乐的地方,只有快乐的人。
    Dubbo 作为一个 RPC 框架,支持多种序列化方式以满足不同场景需求。以下是 Dubbo 支持的主要序列化方式及其特点: ### Dubbo 内置的序列化方式(3.0 版本) 1. **Hessian2**:这是 Dubbo 默认启用的序列化方式,是一种高效的二进制序列化协议。Dubbo 使用的是经过阿里优化的 hessian lite 版本,性能优越且支持跨语言。 2. **Java 序列化**:标准的 Java 序列化协议,使用方便,但性能相对较低,数据体积较大,适用于简单的 Java 应用。 3. **Fastjson2**:轻量级的 JSON 数据格式,适合简单数据结构的序列化,数据易读且调试方便,性能较好。 其中,**Hessian2 是默认选项**,由于其性能较优且支持跨语言调用。 ### Dubbo 支持的扩展序列化方式 Dubbo 的扩展性强,支持了多种其他序列化方式,满足不同应用对性能和兼容性的需求: 1. **Kryo**:高性能的序列化框架,适合 Java 应用,数据压缩率高,性能优于 Java 序列化,适合大数据量场景。 2. **Protostuff**:基于 Protocol Buffers 的序列化工具,性能优良,广泛用于性能要求较高的场景。 3. **FST**(Fast-Serialization):一种高效的 Java 序列化方案,序列化性能较 Kryo 稍优,适合对序列化要求较高的 Java 应用。 4. **Fury**:蚂蚁推出的高效序列化框架,支持多语言互通,号称比 Hessian 快 100 倍,适合对性能要求极高的场景。 5. **Avro**:Apache 提供的序列化格式,支持动态 Schema 定义,适合大规模数据交换和跨语言调用。 6. **Protocol Buffers(Protobuf)**:Google 的高效序列化协议,广泛应用于跨语言场景,性能优异。 7. **MsgPack**:一种二进制 JSON 序列化格式,体积小、性能高,适合小数据量场景。 8. **其他 JSON 序列化框架**:如 Jackson、Gson 等,适合数据可读性要求较高的场景,便于调试。 ### 总结 Dubbo 的默认序列化方式是 **Hessian2**,其高效、支持跨语言,广泛应用于多语言调用场景。同时,Dubbo 还支持 Kryo、FST、Fury、Protobuf 等高性能序列化协议,适用于不同的性能和兼容性需求。在高并发、对传输效率要求高的场景中,Kryo、FST 和 Fury 等框架因其优越的性能而备受关注。
    编辑于 2024-01-21 15:10 •IP属地 美国
    举报
    评论
    收藏

  • 澜夜师兄
    勇敢一点吧!我们不会比今年更年轻了。
    dubbo 支持 hession、Java 二进制序列化、json、SOAP 文本序列化多种序列化协议。但是 hessian 是其默认的序列化协议。
    发布于 2022-03-15 05:53 •IP属地 天津
    举报
    评论
    收藏