`
skmbw
  • 浏览: 4426 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

kryo序列化

阅读更多
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;

import org.objenesis.strategy.StdInstantiatorStrategy;

import com.esotericsoftware.kryo.Kryo;
import com.esotericsoftware.kryo.io.Input;
import com.esotericsoftware.kryo.io.Output;

public class DefaultSerializeConverter
{
    private ThreadLocal<Kryo> serializeThreadLocal = new ThreadLocal<Kryo>();
   
    private static DefaultSerializeConverter instance = new DefaultSerializeConverter();
   
    public static DefaultSerializeConverter getInstance() {
        return instance;
    }
   
    private DefaultSerializeConverter() {
       
    }
   
    public Kryo getSerializeConverter() {
        Kryo kryo = serializeThreadLocal.get();
       
        if (kryo == null) {
            kryo = new Kryo();
            kryo.setRegistrationRequired(true);
            kryo.setReferences(true);
            kryo.setInstantiatorStrategy(new StdInstantiatorStrategy());
           
            kryo.register(Class.class);
            kryo.register(HashMap.class);
            kryo.register(ArrayList.class);
            kryo.register(BigDecimal.class);
            kryo.register(Date.class);
           
            serializeThreadLocal.set(kryo);
        }
        return kryo;
    }
   
    public byte[] toBytes(Object t) {
        Kryo converter = getSerializeConverter();
        Output output = new Output(1024, 4 * 1024);
        converter.writeObject(output, t);

        return output.toBytes();
    }
   
    public <T> T fromBytes(byte[] bytes, Class<T> clazz) {
        Kryo converter = getSerializeConverter();
        Input input = new Input(bytes);
        return converter.readObject(input, clazz);
    }
   
}
分享到:
评论

相关推荐

    tomcat-session序列化(tomcat-kryo序列化)

    tomcat kryo序列化,msm-memcached-session-manager-tc7-1.8.2

    kryo序列化jar包集合

    2. **内存优化**:Kryo序列化生成的数据通常比Java原生序列化更小,这减少了网络传输和存储的需求。 3. **对象共享**:Kryo支持对象引用的处理,能够在序列化和反序列化过程中保持对象间的引用关系,避免了深拷贝的...

    Kryo序列化及反序列化用法示例

    Kryo序列化及反序列化用法示例 Kryo是Java对象图形序列化框架,它主要特点是性能高效和易用,该项目用来序列化对象到文件、数据库或者网络。序列化是指将对象转换为字节流的过程,而反序列化是指将字节流转换回对象...

    netty传输kryo序列化的对象基于socket传输

    本主题“netty传输kryo序列化的对象基于socket传输”探讨的是如何结合Netty和Kryo,实现高效、可靠的网络数据传输。首先,我们需要了解Kryo序列化的基本原理。Kryo通过跟踪对象引用和存储类型信息来优化序列化过程,...

    基于Netty通信框架和Kryo序列化协议的Spring集成Nexus RPC框架设计源码

    该项目为基于Netty通信框架和Kryo序列化协议的Spring集成Nexus RPC框架设计源码,共计90个文件,涵盖70个Java源文件、8个XML配置文件、2个YAML文件、2个PNG图片文件、1个Git忽略文件、1个许可证文件和1个Markdown...

    基于Kryo序列化机制的RPC协议——Kryonet的应用与研究

    首先,我们来理解Kryo序列化机制。Kryo是一个高性能的对象图形序列化库,适用于Java和Scala。它的设计目标是速度和低内存占用,这使得Kryo非常适合在网络传输或持久化数据时使用。Kryo通过注册类和对象实例,能够...

    chill:Kryo 序列化库的 Scala 扩展

    寒意 扩展,包括序列化程序和一组类,以简化 Kryo 在 Hadoop、Storm、Akka 等系统中的配置。兼容性版本之间不保证序列化兼容性,因此,我们不建议将其用于长期存储。 序列化高度依赖于 scala 版本兼容性和底层 Kryo ...

    java原生序列化和Kryo序列化性能实例对比分析

    "java原生序列化和Kryo序列化性能实例对比分析" 本文主要介绍了java原生序列化和Kryo序列化性能实例对比分析,涉及Java和kryo序列化和反序列化相关实例。下面是对标题、描述、标签和部分内容的详细说明: 1. 序列...

    nginx+tomcat7+session共享 kryo序列化所需要包

    nginx+tomcat7+session共享 kryo序列化所需要包 1.将上面所提到的包全部拷贝到tomcat的lib下(三台tomcat都需要) 2.修改每台tomcat的conf目录下得context.xml文件或者server.xml文件,在其中加入如下任意一段代码...

    Memchached+Tomcat6|7session共享 kryo序列化所需要包

    Memchached+Tomcat6|7session共享 kryo序列化所需要包 (已经更新至1.8.2版本) 1.将所有的包拷贝至tomcat目录下的lib下面; 2.修改conf/context.xml加下面的代码: memcachedNodes="n1:127.0.0.1:11211" ...

    akka-kryo-serialization, 基于Kryo的Akka序列化.zip

    akka-kryo-serialization, 基于Kryo的Akka序列化 akka-kryo-serialization-- Scala 和Akka基于kryo的序列化程序这个库为 Scala 和Akka提供定制的基于kryo的序列化程序。 它可以用于更高效的akka远程处理。它还可以...

    Memcached-session-manager所需最新jar包-tomcat7-kryo序列

    【标题】:“Memcached-session-manager所需最新jar包-tomcat7-kryo序列”指的是在Tomcat7中使用Memcached作为会话管理器时,需要的特定版本的jar包,特别是与Kryo序列化相关的组件。 【描述】:“Memcached-...

    iginite-persistence-cassandra:使用Apache Cassandra并使用Kryo序列化程序实现Apache Ignite持久性

    在这个项目"ignite-persistence-cassandra"中,我们看到如何配置Ignite以使用Cassandra作为持久化存储,并且采用了Kryo序列化程序来优化数据处理。 首先,让我们了解Apache Cassandra。Cassandra是一个开源的NoSQL...

    kryo-demo,kryo4.0.0-demo

    二、Kryo序列化 1. 安装与依赖 在使用Kryo之前,首先需要将其添加到项目依赖中。对于Maven项目,可以在pom.xml文件中加入以下依赖: ```xml &lt;groupId&gt;com.esotericsoftware&lt;/groupId&gt; &lt;artifactId&gt;kryo ...

    Objective-C序列化框架KryoCocoa.zip

    KryoCocoa 是 Kryo 高性能 Java 序列化框架的 Objective-C 移植版本,兼容 Java 版本的序列化格式。示例代码:Kryo *kryo = [Kryo new]; // ... NSOutputStream *outputStream = [NSOutputStream ...

    kryo-3.0.3-all.zip

    1. **高速度**:Kryo序列化速度远超标准的Java序列化,这是由于它采用了字节码操作和预注册类的方式,减少了运行时反射的开销。 2. **低内存消耗**:Kryo通过对象池和对象引用跟踪机制,减少了序列化和反序列化过程...

    Kryo所需的依赖包

    - Kryo序列化是一种将Java对象转换为字节流的过程,以便于存储或在网络中传输。它提供了比标准Java序列化更快的速度和更小的存储开销。 - 序列化过程中,Kryo会跟踪对象引用,避免循环引用导致的无限递归问题。 2...

    memcached session manager 1.9.6 适用于 tomcat 8 各版本 支持kryo等多种序列化方式

    6. **msm-kryo-3.0.3.jar**: Kryo的库文件,用于实现Kryo序列化。 7. **msm-memcached-session-manager-1.9.6.jar**: 主要的memcached session manager实现。 8. **msm-flexjson-3.3.jar**: FlexJSON库,用于JSON...

Global site tag (gtag.js) - Google Analytics