摘抄一段別人的描述:Protocol Buffers 是一種輕便高效的結構化資料儲存格式,可以用於結構化資料序列化,或者說序列化。它很適合做資料儲存或 RPC 資料交換格式。可用於通訊協議、資料儲存等領域的語言無關、平臺無關、可擴充套件的序列化結構資料格式。看到這個描述第一感覺是雲裡霧裡,研究後總結protobuf的以下幾點:
grpc作為rpc的一種,肯定有服務間的網路呼叫,呼叫就一定會有資料的傳輸,而這個資料的傳輸就用的是protobuf去序列化和反序列化的,一個請求的內容在呼叫方序列化通過網路傳送到服務方,服務方就能用protobuf反序列化出來,後面的文章會講解細節。
protobuf有一個類似thrift的IDL(介面描述語言),就是描述一個物件包括什麼欄位,一個服務包括什麼介面,簡單如下:
message Person {
string name = 1;
int32 id = 2;
string email = 3;
}protobuf還有專門的工具生成物件程式碼,你用這些程式碼就能將物件序列化到檔案或者流中,當然也能反序列化成物件,後面的例子會具體介紹。
protobuf支援多種語言,常見的比如go,c++,java,php等,具體可以參考官網
本作品採用《CC 協議》,轉載必須註明作者和本文連結