Dubbo3 序列化擴展

2022-04-22 11:53 更新

擴展說明

將對象轉(zhuǎn)成字節(jié)流,用于網(wǎng)絡(luò)傳輸,以及將字節(jié)流轉(zhuǎn)為對象,用于在收到字節(jié)流數(shù)據(jù)后還原成對象。

擴展接口

  • org.apache.dubbo.common.serialize.Serialization
  • org.apache.dubbo.common.serialize.ObjectInput
  • org.apache.dubbo.common.serialize.ObjectOutput

擴展配置

<!-- 協(xié)議的序列化方式 -->
<dubbo:protocol serialization="xxx" />
<!-- 缺省值設(shè)置,當(dāng)<dubbo:protocol>沒有配置serialization時,使用此配置 -->
<dubbo:provider serialization="xxx" />

已知擴展

  • org.apache.dubbo.common.serialize.dubbo.DubboSerialization
  • org.apache.dubbo.common.serialize.hessian.Hessian2Serialization
  • org.apache.dubbo.common.serialize.java.JavaSerialization
  • org.apache.dubbo.common.serialize.java.CompactedJavaSerialization

擴展示例

Maven 項目結(jié)構(gòu):

src
 |-main
    |-java
        |-com
            |-xxx
                |-XxxSerialization.java (實現(xiàn)Serialization接口)
                |-XxxObjectInput.java (實現(xiàn)ObjectInput接口)
                |-XxxObjectOutput.java (實現(xiàn)ObjectOutput接口)
    |-resources
        |-META-INF
            |-dubbo
                |-org.apache.dubbo.common.serialize.Serialization (純文本文件,內(nèi)容為:xxx=com.xxx.XxxSerialization)

XxxSerialization.java:

package com.xxx;
 
import org.apache.dubbo.common.serialize.Serialization;
import org.apache.dubbo.common.serialize.ObjectInput;
import org.apache.dubbo.common.serialize.ObjectOutput;
 
 
public class XxxSerialization implements Serialization {
    public ObjectOutput serialize(Parameters parameters, OutputStream output) throws IOException {
        return new XxxObjectOutput(output);
    }
    public ObjectInput deserialize(Parameters parameters, InputStream input) throws IOException {
        return new XxxObjectInput(input);
    }
}

META-INF/dubbo/org.apache.dubbo.common.serialize.Serialization:

xxx=com.xxx.XxxSerialization


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號