支持2种类型

根据应用场景选择不同的序列化。

传输速度要求不高的可以选择可读性强的文本类序列化 (一般对接第三方系统有此类需求,基于HTTP协议)

传输速度要求高的可以选择传输体小的二进制序列化(一般内部系统调用有次类需求,基于TCP\UDP协议)

以上2种序列化的内容都可以对传输内容做压缩

  • 二进制(易于扩展)

    • nustaq
    • esotericsoftware
    • JDK自带
    • 未用,未来可能会加上(框架扩展性强,加上容易)
    ProtoStuffSerializer
    
  • 文本(json)(易于扩展)

    • 阿里的fastjson
    • jacksonJson
    • nustaq

支持6类序列化实现

  • 具体见代码

备注:此处省略了以前常用的xml(属于文本类型)

关键代码

public enum SerializerType {
    FST_BINARY("fstBinarySerializer"),
    KRYO_BINARY("kryoBinarySerializer"),
    JDK_BINARY("jdkBinarySerializer"),
    JACKSON_JSON("jacksonJsonSerializer"),
    ALI_JSON("aliJsonSerializer"),
    FST_JSON("fstJsonSerializer");

    private String value;

    private SerializerType(String value) {
        this.value = value;
    }

    public String getValue() {
        return value;
    }

    public static SerializerType fromString(String value) {
        for (SerializerType type : SerializerType.values()) {
            if (type.getValue().equalsIgnoreCase(value.trim())) {
                return type;
            }
        }

        throw new IllegalArgumentException("Mismatched type with value=" + value);
    }

    @Override
    public String toString() {
        return value;
    }

results matching ""

    No results matching ""