- 深入理解序列化与反序列化
- 潘洪安
- 892字
- 2020-11-21 19:41:43
前言
随着互联网技术的高速发展,涌现出了大数据、微服务等技术。这些技术背后都是分布式技术的高水平应用。分布式技术的核心之一便是服务或组件之间的数据交互。要在分布式系统中高效地交互数据,数据序列化与反序列化技术起着关键作用。将结构化的对象和扁平的二进制流进行相互转换,是序列化技术解决的核心问题。这个问题听起来简单,却耗费了几代技术人的心血。从JDK 1.1提供序列化机制到盛行的Thrift、Protocol Buffer,序列化技术不断更替演进,其间出现过的序列化技术不少于20种。如今,那些令人尊敬的技术专家们仍未停止探索的脚步,这听起来确实令技术爱好者兴奋,毕竟技术可期。
序列化技术被广泛用于数据传输、数据存储中,不同业务场景的需求不尽相同,技术方案的侧重也不尽相同。要在众多序列化技术方案中选择一款适合应用场景的技术,要求技术选型者对序列化方案有深入且全面的了解。从实现机制到性能,从开发复杂度到快速应用,如何准确评估一款序列化技术是否适合应用场景?这无形中对开发人员提出了更高的要求。
互联网上有较多关于序列化技术应用的资料,但技术覆盖点不够全、重复点较多,未能较全面地梳理序列化技术知识体系。笔者也经历了这个技术学习过程,于是产生了一个想法:对现有的主流序列化技术进行较深入的梳理和解读,让读者能快速获取序列化技术体系的知识,深入理解各种序列化技术的实现原理、差异性及场景适用性。
本书兼顾技术原理和技术应用,适合初级开发者、高级开发人员、架构师及技术专家使用。为了帮助读者在阅读本书时达到事半功倍的目的,笔者给出两个学习建议:1)实践本书中的代码,将理解落地;2)结合源码和本书提供的原理阐述去理解技术内容。
感谢电子工业出版社编辑牛晓丽老师的严谨态度和辛勤付出,使得本书能够顺利完成。更感谢牛老师多次对日期的宽限,才使得笔者能安心写作。
感谢好友岳京杭,通过他的引荐,笔者才有机会和牛老师沟通并落实想法。
感谢工作以来帮助过我的领导和同事们,特别是在快手工作的两年,专家们的技术高度和对技术的态度,深深影响了我。
感谢业界的各位技术“大牛”不吝笔墨为本书撰写推荐序和推荐语。
最后,感谢家人和朋友们在本书写作过程中提供的支持和帮助。