Skip to content

消息序列化

消息序列化决定了消息在网络中的传输格式。

支持的序列化方式

JSON(默认)

java
// 自动使用 JSON 序列化
producer.send("user.created", user);

// 显式指定
producer.send("user.created", user, SerializationType.JSON);

Protobuf

java
// 使用 Protobuf 序列化
producer.send("user.created", user, SerializationType.PROTOBUF);

Avro

java
// 使用 Avro 序列化
producer.send("user.created", user, SerializationType.AVRO);

自定义序列化器

java
public class CustomSerializer implements MessageSerializer {
    
    @Override
    public byte[] serialize(Object obj) {
        // 自定义序列化逻辑
        return customSerialize(obj);
    }
    
    @Override
    public <T> T deserialize(byte[] data, Class<T> clazz) {
        // 自定义反序列化逻辑
        return customDeserialize(data, clazz);
    }
}

// 注册自定义序列化器
messagingConfig.setSerializer(new CustomSerializer());

最佳实践

  1. 选择合适的序列化方式:JSON 易读,Protobuf 高效
  2. 版本兼容:考虑消息格式的向后兼容性
  3. 性能优化:大消息使用二进制序列化
  4. 类型安全:使用强类型消息

下一步

Released under the Apache License 2.0