Commit ccd7b281 by huangfusuper

修改 请求响应包序列化方式

parent a19ef644
package com.byit.enums; package com.byit.enums;
import com.byit.serialization.HessianSerialize;
import com.byit.serialization.ISerializer; import com.byit.serialization.ISerializer;
import com.byit.serialization.JsonSerializer; import com.byit.serialization.JsonSerializer;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
/** /**
* 序列化算法标识 * 序列化算法标识
* @author huangfu * @author huangfu
*/ */
public enum SerializerAlgorithm { public enum SerializerAlgorithm {
JSON(Byte.parseByte("1"),new JsonSerializer(),"FastJson序列化方式") JSON(Byte.parseByte("1"),new JsonSerializer(),"FastJson序列化方式"),
HESSIAN_JSON(Byte.parseByte("2"),new HessianSerialize(),"Hessian序列化方式")
; ;
private byte serializerAlgorithm; private byte serializerAlgorithm;
private ISerializer iSerializer; private ISerializer iSerializer;
......
...@@ -3,6 +3,7 @@ package com.byit.packet.request; ...@@ -3,6 +3,7 @@ package com.byit.packet.request;
import com.byit.enums.Command; import com.byit.enums.Command;
import com.byit.enums.SerializerAlgorithm; import com.byit.enums.SerializerAlgorithm;
import com.byit.packet.BasePacketModel; import com.byit.packet.BasePacketModel;
import com.byit.param.ResultCallback;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
...@@ -14,6 +15,10 @@ import lombok.EqualsAndHashCode; ...@@ -14,6 +15,10 @@ import lombok.EqualsAndHashCode;
@Data @Data
public class PluginRpcRequestPacket extends BasePacketModel { public class PluginRpcRequestPacket extends BasePacketModel {
/** /**
* 一次请求的标识
*/
private String requestId;
/**
* 任务名称 * 任务名称
*/ */
private String jobName; private String jobName;
...@@ -24,6 +29,8 @@ public class PluginRpcRequestPacket extends BasePacketModel { ...@@ -24,6 +29,8 @@ public class PluginRpcRequestPacket extends BasePacketModel {
private String param; private String param;
private ResultCallback resultCallback;
@Override @Override
public Command getCommand() { public Command getCommand() {
return Command.RUN_REMOTELY_JOB_NODE_REQUEST; return Command.RUN_REMOTELY_JOB_NODE_REQUEST;
...@@ -31,6 +38,6 @@ public class PluginRpcRequestPacket extends BasePacketModel { ...@@ -31,6 +38,6 @@ public class PluginRpcRequestPacket extends BasePacketModel {
@Override @Override
public SerializerAlgorithm getSerializerAlgorithm() { public SerializerAlgorithm getSerializerAlgorithm() {
return SerializerAlgorithm.JSON; return SerializerAlgorithm.HESSIAN_JSON;
} }
} }
...@@ -13,7 +13,10 @@ import lombok.EqualsAndHashCode; ...@@ -13,7 +13,10 @@ import lombok.EqualsAndHashCode;
@Data @Data
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
public class PluginRpcResponsePacket extends BasePacketModel { public class PluginRpcResponsePacket extends BasePacketModel {
/**
* 一次请求的标识
*/
private String requestId;
/** /**
* 日志ID 扩展字段也可传其他参数 * 日志ID 扩展字段也可传其他参数
*/ */
...@@ -30,6 +33,6 @@ public class PluginRpcResponsePacket extends BasePacketModel { ...@@ -30,6 +33,6 @@ public class PluginRpcResponsePacket extends BasePacketModel {
@Override @Override
public SerializerAlgorithm getSerializerAlgorithm() { public SerializerAlgorithm getSerializerAlgorithm() {
return SerializerAlgorithm.JSON; return SerializerAlgorithm.HESSIAN_JSON;
} }
} }
package com.byit.serialization;
import com.byit.enums.SerializerAlgorithm;
import com.caucho.hessian.io.HessianInput;
import com.caucho.hessian.io.HessianOutput;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
/**
* @Auther: huangfu
* @Date: 2020年4月9日17:40:57
* @Description: Hessian实现序列化、反序列化
*/
public class HessianSerialize implements ISerializer {
@Override
public byte getSerializerAlgorithm() {
return SerializerAlgorithm.HESSIAN_JSON.getSerializerAlgorithm();
}
@Override
public byte[] serialize(Object object) {
ByteArrayOutputStream byteArrayOutputStream = null;
HessianOutput hessianOutput = null;
try {
byteArrayOutputStream = new ByteArrayOutputStream();
// Hessian的序列化输出
hessianOutput = new HessianOutput(byteArrayOutputStream);
hessianOutput.writeObject(object);
return byteArrayOutputStream.toByteArray();
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
byteArrayOutputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
try {
hessianOutput.close();
} catch (IOException e) {
e.printStackTrace();
}
}
return null;
}
@Override
public <T> T deserialize(Class<T> clazz, byte[] bytes) {
ByteArrayInputStream byteArrayInputStream = null;
HessianInput hessianInput = null;
try {
byteArrayInputStream = new ByteArrayInputStream(bytes);
// Hessian的反序列化读取对象
hessianInput = new HessianInput(byteArrayInputStream);
return (T) hessianInput.readObject();
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
byteArrayInputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
try {
hessianInput.close();
} catch (Exception e) {
e.printStackTrace();
}
}
return null;
}
}
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment