ASP.NET Core中使用Protobuf從入門到實戰

一、Protocol Buffers簡介和特點

1、Protocol Buffers簡介

ProtoBuf (Google Protocol Buffer)是由google公司用於數據交換的序列結構化數據格式,具有跨平臺、跨語言、可擴展特性,類型於常用的XML及JSON,但具有更小的傳輸體積、更高的編碼、解碼能力,特別適合於數據存儲、網絡數據傳輸等對存儲體積、實時性要求高的領域。 

2、Protocol Buffers特點

        XML、JSON是目前常用的數據交換格式,它們可讀性較好。但序列化後的數據字節很大,序列化和反序列化的時間較長,數據傳輸效率不高。

        Protobuf和Xml、Json序列化的方式不同,採用了二進制字節的序列化方式,用字段索引和字段類型通過算法計算得到字段之前的關係映射,從而達到更高的時間效率和空間效率,特別適合對數據大小和傳輸速率比較敏感的場合使用。


 

二、Protobuf協議文件(proto3)指南

ProtoBuf 有兩個語言版本:v2 與 v3,截止目前在使用 v3 的時候,需要在 *.proto 文件首行中明文標識syntax="proto3";
否則默認爲 syntax="proto2"; 推薦使用最新的syntax = "proto3";語法。

三、如何將.proto文件生成C#類文件

1、方法一:protogen - npm cnmp  install -g protogen
https://www.npmjs.com/package/protogen

語法:protogen -i:input.proto -o:output.cs 

方法二:通過源碼編譯C# protogen 
下載地址:https://github.com/protobuf-net/protobuf-net/tags 

方法三:Protogen官網是支持在線生成的。 
網址 : https://protogen.marcgravell.com/ 

四、ASP.NET Core中使用Protobuf格式作爲數據交換

1、請求=》PB》反序列化爲對象—請求數據

2、響應=》響應的數據》序列化爲PB格式 

五、NET Core客戶端調用Protobuf格式的WebApi

protobuf-net/protobuf-net: Protocol Buffers library for idiomatic .NET 

 https://github.com/protobuf-net/protobuf-net

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章