在前面《手把手教你写rpc框架系列(四)定义zookeeper上存储的元数据信息数据结构》我们定义了存储在zookeeper上的元数据信息数据结构,在调用zookeeper的时候,我们需要对数据的读写进行序列化和反序列化,因此这里也需要我们自定义这个序列化的类。
这里实现zookeeper的序列化和反序列化解析比较简单,只需要实现ZkSerializer这个类即可,所以这里我们定义一个ZookeeperSerializer类,来实现这里的序列化和反序列化,完整代码如下:
package org.wz.rpc.framework.serializer;
import org.I0Itec.zkclient.serialize.ZkSerializer;
import java.nio.charset.StandardCharsets;
/**
* Zookeeper序列化和反序列化
*
*/
public class ZookeeperSerializer implements ZkSerializer {
/**
* 反序列化
*
* @param bytes 字节数组
* @return 对象
*/
public Object deserialize(byte[] bytes) {
return new String(bytes, StandardCharsets.UTF_8);
}
/**
* 序列化
*
* @param obj 对象
* @return 字节数组
*/
public byte[] serialize(Object obj) {
return String.valueOf(obj).getBytes(StandardCharsets.UTF_8);
}
}比较简单,主要就是转换成bytes数组,然后再转回来。此时我们的项目结构图如下:
最后按照惯例,附上本案例的源码,登录后即可下载。










还没有评论,来说两句吧...