protobuf簡單介紹和ubuntu 16.04環(huán)境下安裝教程
protobuf簡單介紹
protobuf是谷歌的開源序列化協(xié)議框架,結(jié)構(gòu)類似于XML,JSON這種,顯著的特點是二進(jìn)制的,效率高,主要用于通信協(xié)議和數(shù)據(jù)存儲等方面,算是一種結(jié)構(gòu)化數(shù)據(jù)的表示方法。
protobuf的優(yōu)點
- 大家都在用,起碼‘裝逼'的都在用【咱要跟上時代】
- 別人說性能好,二進(jìn)制格式【大項目不用這個,感覺丟人】
- 跨平臺支持各種語言,前后兼容好強大【畢竟人家谷歌在用了】
protobuf的缺點
- 二進(jìn)制格式,一般人看不了
- 缺乏自我描述
xml是自我描述的,但是protobuf格式不是的,給你一段二進(jìn)制文件,你看不出來作用
protobuf使用步驟
- 定義自己的數(shù)據(jù)結(jié)構(gòu)格式(.pro)源文件
- 利用protobuf提供的編譯器編譯源文件
- 利用protobuf go的api讀寫信息
比如定義一個結(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的語法
Message定義
一個message類型定義一個請求或相應(yīng)的消息格式,可以包含多種類型
Service服務(wù)
如果需要將消息類型用在rpc上面,那就需要在.proto文件定義一個rpc服務(wù)接口,protocol buffer編譯器會根據(jù)所選擇的不同語言生成服務(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),沒有遇到什么問題,下面查看下版本吧
$ protoc --version12
總結(jié)
以上所述是小編給大家介紹的protobuf簡單介紹和ubuntu 16.04環(huán)境下安裝教程,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
如果你覺得本文對你有幫助,歡迎轉(zhuǎn)載,煩請注明出處,謝謝!
相關(guān)文章
CentOS使用本地yum源搭建LAMP環(huán)境圖文教程
這篇文章主要介紹了CentOS使用本地yum源搭建LAMP環(huán)境,詳細(xì)分析了CentOS使用本地yum源搭建LAMP的具體步驟、相關(guān)命令及操作注意事項,需要的朋友可以參考下2019-06-06在varnish、squid、apache、nginx中選出一個更好的緩存服務(wù)器
這篇文章主要介紹了在varnish、squid、apache、nginx中選出一個更好的緩存服務(wù)器,需要的朋友可以參考下2014-06-06Linux之進(jìn)程間通信(共享內(nèi)存【mmap實現(xiàn)+系統(tǒng)V】)
這篇文章主要介紹了Linux之進(jìn)程間通信(共享內(nèi)存【mmap實現(xiàn)+系統(tǒng)V】),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-03-03CentOS基于nginx反向代理實現(xiàn)負(fù)載均衡的方法
這篇文章主要介紹了CentOS基于nginx反向代理實現(xiàn)負(fù)載均衡的方法,簡單分析了CentOS環(huán)境下nginx負(fù)載均衡的原理及nginx安裝與相關(guān)設(shè)置操作技巧,需要的朋友可以參考下2018-04-04詳解負(fù)載均衡實現(xiàn)一個域名對應(yīng)多個IP地址
這篇文章主要介紹了詳解負(fù)載均衡實現(xiàn)一個域名對應(yīng)多個IP地址的相關(guān)資料,需要的朋友可以參考下2017-05-05ubuntu 系統(tǒng)上為php加上redis 擴(kuò)展的實現(xiàn)方法
這篇文章主要介紹了ubuntu 系統(tǒng)上為php加上redis 擴(kuò)展的實現(xiàn)方法的相關(guān)資料,希望通過本文能幫助到大家,讓大家實現(xiàn)這樣的功能,需要的朋友可以參考下2017-10-10Linux下gdb調(diào)試之打斷點的實現(xiàn)方法
這篇文章主要介紹了Linux下gdb調(diào)試之打斷點的實現(xiàn)方法,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-09-09Linux下安裝IPython配置python開發(fā)環(huán)境教程
這篇文章主要為大家詳細(xì)介紹了Linux下安裝IPython配置python開發(fā)環(huán)境教程,需要的朋友可以參考下2016-05-05