1. 程式人生 > 其它 >Protocol Buffers概述及Mac下安裝配置

Protocol Buffers概述及Mac下安裝配置

1、概述

現在的網路應用都是前後端分離的,資料傳輸方式有:json和xml兩種格式。現在又多了一種資料傳輸方式,就是google開發的Protocol Buffers(Protocol buffers 是語言中立、平臺中立、可擴充套件的結構化資料序列化機制,就像 XML,但是它更小、更快、更簡單。你只需定義一次資料的結構化方式,然後就可以使用特殊生成的原始碼輕鬆地將結構化資料寫入和讀取各種資料流,支援各種語言)。在分散式應用或者微服務架構中,各個服務之間通常使用json或者xml結構資料進行通訊,通常情況下,是沒什麼問題的,但是在高效能和大資料通訊的系統當中,如果有辦法可以壓縮資料量,提高傳輸效率,顯然會給使用者帶來更快更流暢的體驗。

也就是現在主流的資料傳輸方式有三種:

  • JSON
  • xml
  • Protocol Buffers

存在即是合理,Protocol Buffers為什麼會出現呢?回答即是效能。一條訊息資料,用protobuf序列化後的大小是json的10分之一,是xml格式的20分之一,但是效能卻是它們的5~100倍。

2、Mac下安裝配置Protobuf

1)github下載指定版本二進位制檔案

wget https://github.com/protocolbuffers/protobuf/releases/download/v3.15.0/protoc-3.15.0-osx-x86_64.zip

2)解壓二進位制檔案檔案並將protoc二進位制檔案拷貝到/usr/local/bin目錄下

unzip protoc-3.15.0-osx-x86_64.zip 
cp protoc-3.15.0-osx-x86_64/bin/protoc /usr/local/bin/

3)安裝好之後,檢視是否安裝成功

*** Desktop$ protoc --version
libprotoc 3.15.0

4)安裝protobuf的golang外掛

安裝protobuf包,使用protobuf需要先安裝對應的包

go get -u -v github.com/golang/protobuf/proto

因為protoc沒有內建go生成器,想實現.proto->.go的轉換的話還需要安裝protobuf的golang編譯器外掛protoc-gen-go,用於生成go檔案

go get -u -v github.com/golang/protobuf/protoc-gen-go

3、Goland中配置protobuf外掛

1)安裝protocol外掛

2)這時候Goland就可以解析proto語法了

至此,本地就安裝好了Protocol Buffers及Protocol Buffers的golang外掛,後面在golang專案中就可以使用Protocol Buffers進行資料傳輸了。