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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM