protobuf簡(jiǎn)單介紹
protobuf是谷歌的開(kāi)源序列化協(xié)議框架,結(jié)構(gòu)類似于XML,JSON這種,顯著的特點(diǎn)是二進(jìn)制的,效率高,主要用于通信協(xié)議和數(shù)據(jù)存儲(chǔ)等方面,算是一種結(jié)構(gòu)化數(shù)據(jù)的表示方法。
protobuf的優(yōu)點(diǎn)
- 大家都在用,起碼‘裝逼'的都在用【咱要跟上時(shí)代】
- 別人說(shuō)性能好,二進(jìn)制格式【大項(xiàng)目不用這個(gè),感覺(jué)丟人】
- 跨平臺(tái)支持各種語(yǔ)言,前后兼容好強(qiáng)大【畢竟人家谷歌在用了】
protobuf的缺點(diǎn)
xml是自我描述的,但是protobuf格式不是的,給你一段二進(jìn)制文件,你看不出來(lái)作用
protobuf使用步驟
- 定義自己的數(shù)據(jù)結(jié)構(gòu)格式(.pro)源文件
- 利用protobuf提供的編譯器編譯源文件
- 利用protobuf go的api讀寫(xiě)信息
比如定義一個(gè)結(jié)構(gòu)化數(shù)據(jù)person,包含name和email屬性
xml中這樣定義
<person>
<name>zhangsan</name>
<email>zhangsan@qq.com</email>
<person>
protobuf這樣定義
person{
name:"zhangsan"
email:"zhangsan@qq.com"
}
json中這樣定義
{
"person":{
"name":"zhangsan",
"email":"zhangsan@qq.com"
}
}
protobuf的語(yǔ)法
Message定義
一個(gè)message類型定義一個(gè)請(qǐng)求或相應(yīng)的消息格式,可以包含多種類型
Service服務(wù)
如果需要將消息類型用在rpc上面,那就需要在.proto文件定義一個(gè)rpc服務(wù)接口,protocol buffer編譯器會(huì)根據(jù)所選擇的不同語(yǔ)言生成服務(wù)接口代碼。
protobuf在ubuntu 下安裝 【版本16.04】
官方地址:https://github.com/google/protobuf/blob/master/src/README.md
安裝命令行如下:
$ sudo apt-get install autoconf automake libtool curl make g++ unzip
$ git clone https://github.com/google/protobuf.git
$ cd protobuf
$ git submodule update --init --recursive
$ ./autogen.sh
$ ./configure
$ make
$ make check
$ sudo make install
$ sudo ldconfig # refresh shared library cache.
make之后的截圖
中途編譯一路順風(fēng),沒(méi)有遇到什么問(wèn)題,下面查看下版本吧
$ protoc --version12
總結(jié)
以上所述是小編給大家介紹的protobuf簡(jiǎn)單介紹和ubuntu 16.04環(huán)境下安裝教程,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
如果你覺(jué)得本文對(duì)你有幫助,歡迎轉(zhuǎn)載,煩請(qǐng)注明出處,謝謝!