您好,登錄后才能下訂單哦!
像兩個交流一樣要找一個互相能理解的語言, 在國內為普通話, 跑國外多用英語相通, 兩個進程間通信也需要找一個大家都能理解的數據格式. 簡單的如 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
交互. 為操作數據的簡單, 我們通常采用前一種方式, 即生成具體數據傳輸對象. 閱讀全文 >>
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。