从零实现一个RPC框架(二) - 编、解码器

本文详细探讨了Kryo在RPC框架中的作用,主要关注其作为编解码器的角色。介绍了Kryo主要用于Java序列化和反序列化的场景,并非跨语言数据交换。同时,提到了Kryo的读写操作实现,并预告了关于ThreadLocal的后续讨论。
摘要由CSDN通过智能技术生成

文章目录

编、解码器

kryo

“Kryo 一般只用来进行序列化(然后作为缓存,或者落地到存储设备之中)、反序列化,而不用于在多个系统、甚至多种语言间进行数据交换 —— 目前 kryo 也只有 java 实现。”

Reading and writing(读与写)

Kryo有三组读写对象的方法。

// 1. 如果不知道对象的具体类,且对象可以为null:   
kryo.writeClassAndObject(output, object);
// ...
Object object = kryo.readClassAndObject(input);
if (object instanceof SomeClass) {
   // ...
}
// 2. 如果类已知且对象可以为null:    
kryo.writeObjectOrNull(output, someObject);
// ...
SomeClass someObject = kryo.readObjectOrNull(input, SomeClass.class);
// 3. 如果类已知且对象不能为null:       
kryo.writeObject(output, someObject);
// ...
SomeClass someObject = kryo.readObject(input, SomeClass.class);

实现代码:

public class KryoSerializer implements Serializer {
   

	// kryo不是线程安全的,所以需要使用 ThreadLocal 在指定线程内存储数据
    private final ThreadLocal<Kryo> kryoThreadLocal = ThreadLocal.withInitial(() -> {
   
        Kryo kryo 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值