您好,登錄后才能下訂單哦!
一、protobuf的應用場景
在官方文檔中可以看到
protocol buffers 是一種語言無關、平臺無關、可擴展的序列化結構數據的方法,它可用于(數據)通信協議、數據存儲等。 Protocol Buffers 是一種靈活,高效,自動化機制的結構數據序列化方法-可類比 XML,但是比 XML 更小(3 ~ 10倍)、更快(20 ~ 100倍)、更為簡單。
可以看到protobuf 與json相比具有 壓縮比高 、解壓縮速度更快的優點
二、protobuf的使用
protobuf在使用上較為復雜,過程可以分為以下幾步:
POJO類數據:
public class Entity { private String key; private String value; public String getKey() { return key; } public void setKey(String key) { this.key = key; } public String getValue() { return value; } public void setValue(String value) { this.value = value; } }
生成的protobuf的數據:
syntax = "proto3"; message Entity { string key = 1; string value = 2; }
通過protoc.exe進行編譯
在proto.exe的下載地址 https://repo1.maven.org/maven2/com/google/protobuf/protoc/ 編譯Entity.proto文件
protoc-3.9.2-windows-x86_64.exe ./src/main/proto/Entity.proto --java_out=./src/main/java/src/
編譯后生成有 Entity OuterClass類的文件 通過 Entity OuterClass類壓縮數據
StreamWrap.Entity.Builder builder = StreamWrap.Entity.newBuilder(); //構造數據 builder.setKey("123"); builder.setValue("123"); StreamWrap.Entity entity = builder.build(); //將該PB類轉換為二進制數據格式 byte[] buff = entity.toByteArray();
通過EntityOuterClass類解壓縮數據
總結
到此這篇關于Protobuf的簡要介紹及使用的文章就介紹到這了,更多相關Protobuf使用內容請搜索億速云以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持億速云!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。