在前面《手把手教你写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数组,然后再转回来。此时我们的项目结构图如下:
最后按照惯例,附上本案例的源码,登录后即可下载。
还没有评论,来说两句吧...