高性能的序列化与反序列化kryo的简单使用
前言
kryo是个高效的java序列化/反序列化库,目前Twitter、yahoo、Apache、strom等等在使用该技术,比如Apache的spark、hive等大数据领域用的较多。为什么使用kryo而不是其他?
因为性能足够好。比kyro更高效的序列化库就只有google的protobuf了(而且两者性能很接近),protobuf有个缺点就是要传输的每一个类的结构都要生成对应的proto文件(也可以都放在同一个proto文件中,如果考虑到扩展性的话,不建议放在一个proto文件中),如果某个类发生修改,还得重新生成该类对应的proto文件;另外考虑到项目中用的全部是java技术栈,不存在不同编程语言间的兼容性问题,因此最终采用了kryo作为序列化库。使用场景
(数据交换或数据持久化)比如使用kryo把对象序列化成字节数组发送给消息队列或者放到redis等nosql中等等应用场景。
注意:由于kryo不是线程安全的,针对多线程情况下的使用,要对kryo进行一个简单的封装设计,从而可以多线程安全的使用序列化和反序列化序列化和反序列化接口设计/** * 序列化工具(程序调用该接口来实现obj<->byte[]之间的序列化/反序列化) * @author eguid * */ public interface Serializer{ /** * 序列化 * @param t * @param bytes */ public void serialize(Object t,byte[] bytes); /** * 序列化 * @param obj * @param bytes * @param offset * @param count */ public void serialize(Object obj, byte[] bytes, int offset, int count); /** * 反序列化 * @param bytes -字节数组 * @return T */ public T deserialize(byte[] bytes); /** * 反序列化 * @param bytes * @param offset * @param count * @return */ public T deserialize(byte[] bytes, int offset, int count); }使用kryo实现上面的接口/** * 基于kyro的序列化/反序列化工具 * * @author eguid * */ public class kryoSerializer implements Serializer { // 由于kryo不是线程安全的,所以每个线程都使用独立的kryo final ThreadLocal kryoLocal = new ThreadLocal() { @Override protected Kryo initialValue() { Kryo kryo = new Kryo(); kryo.register(ct, new BeanSerializer<>(kryo, ct)); return kryo; } }; final ThreadLocal
最新警方调查证明都美竹不是女侠,但吴亦凡依然凉凉文大白大家好,我是大白,欢迎来到我的白话天下。昨天晚上开始,就有好多朋友专门加了我的微信,让继续聊聊吴亦凡的事。因为关于吴亦凡事件,第一阶段的警方调查结果出来了。虽说目前还没有直接
如何看待各类医药教辅保健类广告占据百度等搜索引擎?曾经,互联网给人们的生产生活带来了极大方便,人们不知道的知识可在网上查找,想要有关疾病及病理原因也可在网上找得到,想为小孩找培训老师也立即可以找到。但现在,我们不少人发现,要在百度
小孩读书有天赋吗儿子小学读书属于中下水平,在几兄弟小孩中,年节聚在一起,老是被重点教育,妻子听了不爽,儿子默不作声。几个玩得好的同学的同年级小孩,一考试就会问我儿子成绩,儿子倒是会说出成绩。作为父
流量也有所有权?近期在很多营销文章里都会看到流量所有权这个名词,小如深入地了解了一下,发现它其实与私域流量的概念很相近。流量所有权可以理解为流量的主人,流量的最终掌握者。在传统广告营销盛行的年代,
抖音的私域流量是什么?抖音严格来说属于一个开放的流量空间。抖音在刚开始运作的时候基本上没有私域流量。随着抖音功能的不断升级,群聊粉丝群的上线,抖音的私域流量才逐渐形成。抖音私域流量池的搭建,对于商家来说
主播带货,已走到末路罗永浩还清了他的6亿债务,以主播为核心的直播时代也随之终结。直播行业正式进入新的阶段。过去的一年里,直播倍受品牌关注,它帮助很多企业渡过了疫情的寒冬,却也让不少企业死于它的暖阳下。
燕窝事件之后,辛巴好像就再也站不起来了9月2日,有粉丝打开辛有志快手账号主页面发现,辛巴直播间又一次被封禁了!直播封禁说明显示,该用户将于9月8日解封,平台方就这一次封禁的原因,并未发出任何公告,但猜测与辛有志之前叫板
热点解析从丰巢收费事件,看智能快递柜未来的发展近期,丰巢快递柜超时收费的时间炒得沸沸扬扬。自4月30日,丰巢宣布对非会员用户实行超时收费,快件免费存放12小时后,每12小时收取0。5元超时保管费,3元封顶。这一举动迅速引起了极
医疗机器人,未来重要的医疗资源?医疗资源是指提供医疗服务和生产要素的总称,通常包括人员医疗费用医疗机构医疗床位医疗设施和装备知识信息和技能等。经过一次范围广,持续时间长的疫情冲击,很多人对医疗资源有了进一步认知,
工业化社会的食品安全保障,智能操控检测设备,杜绝食品中毒现象民以食为天,食品安全自然也是重中之重。日常生活中,人们从市场上购买食品,如果没有突发食品安全新闻出来,大家都不会想到食品安全问题,且只要出现在超市货架上,我们普遍认为它是安全的。当
10个损坏相机的技巧教你如何损坏一台相机好的设备千千万万种毁坏他们的办法基本相同想知道怎样能减少相机的寿命加快你更换相机的速度吗?今天给大家辛辛苦苦整理的这十个小技巧你可要记住喽1。自动对焦时拧对焦环在相机自动对焦模式下