Apache Avro 序列化与反序列化 (Java 实现)
2017-01-17 23:32
381 查看
![](http://unmi.cc/wp-content/uploads/2016/10/apache-avro-150x150.png)
像两个交流一样要找一个互相能理解的语言, 在国内为普通话, 跑国外多用英语相通, 两个进程间通信也需要找一个大家都能理解的数据格式. 简单的如 JSON, XML, 那是自我描述性格式, XML 有 Schema 定义, 但尚无正式的 JSON
Schema 规范. 在讲求效率的场合, 纯文本式的数据交换格式无法满足要求, 于是有二进制的 Google Protobuf 和 Apache Avro. 在 Apache 的生态像 Hadoop, Kafka 中自然是选用 Avro.
Avro 支持多种语言, 如 C, C++, C#, Java, PHP, Python 和 Ruby. 它使用 JSON 来定义 Schema, 通过工具可以由 Schema 生成相应语言的数据对象, 比如 Java 的 avro-tools.jar. 这样可以在跨进程跨语言透明的实现为对象交换.
本文体验 Java 环境中 Avro 数据格式的序列化与反序列化.
Avro Schema 文件就是数据生产和消费端的通信协议; 我们可以由 Schema 生成相应的 Java 对象, 然后以具体的 Java 对象交换, 或者不生成 Java 对象而纯粹以
GenericRecord交互.
为操作数据的简单, 我们通常采用前一种方式, 即生成具体数据传输对象. 阅读全文
>>
相关文章推荐
- Java实现序列化和反序列化
- 线程实现方式以及序列化 反序列化.java
- java序列化和反序列化的简单实现
- Avro - 简单介绍,Java版 - 序列化与反序列化官方例子
- 今天无意中发现JavaBean类基本都要求实现了Serializable接口,以前只是知道序列化以后,可以通过io流的方式将对象序列化和反序列化,进行存取,但不知道为什么需要序列化,今天总结一下
- 序列化与反序列化,Java实现
- 数据结构与算法分析笔记与总结(java实现)--二叉树4:二叉树的序列化和反序列化练习题
- java 序列化和反序列化实现克隆
- java序列化和反序列化对象到mysql 的实现
- 【总结】Java序列化,反序列化实例(属性类不实现序列化接口)
- 二叉树的序列化和反序列化java借助队列实现
- Avro实现序列化和反序列化
- Java序列化,如何实现序列化和反序列化?常见的序列化协议有哪些?
- java使用serializable进行序列化与反序列化实现对象clone(克隆)
- Java实现数据序列化工具Avro的例子
- java 序列化 反序列化 简单实现
- 如何用Avro在内存中实现序列化 和反序列化
- Java手动序列化和反序列化的实现
- Java 中的类为什么要实现序列化呢 / JAVA中序列化和反序列化中的静态成员问题
- java执行序列化和反序列化操作实现对象的clone