php protobuf 性能,php中使用protobuffer
Protobuf 簡介
protobuf(Protocol buffers)是谷歌出品的跨平臺、跨語言、可擴展的數(shù)據(jù)傳輸及存儲的協(xié)議,是高效的數(shù)據(jù)壓縮編碼方式之一。
Protocol buffers 在序列化數(shù)據(jù)方面,它是靈活的,高效的。相比于 XML 來說,Protocol buffers 更加小巧,更加快速,更加簡單。一旦定義了要處理的數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)之后,就可以利用 Protocol buffers 的代碼生成工具生成相關(guān)的代碼。甚至可以在無需重新部署程序的情況下更新數(shù)據(jù)結(jié)構(gòu)。只需使用 Protobuf 對數(shù)據(jù)結(jié)構(gòu)進行一次描述,即可利用各種不同語言或從各種不同數(shù)據(jù)流中對你的結(jié)構(gòu)化數(shù)據(jù)輕松讀寫。
Protocol buffers 很適合做數(shù)據(jù)存儲或 RPC 數(shù)據(jù)交換格式。可用于通訊協(xié)議、數(shù)據(jù)存儲等領(lǐng)域的語言無關(guān)、平臺無關(guān)、可擴展的序列化結(jié)構(gòu)數(shù)據(jù)格式。
此外,Protobuf由于其在內(nèi)網(wǎng)高效的數(shù)據(jù)交換效率,是被廣泛應(yīng)用于微服務(wù)的,在谷歌的開源框架grpc即是基于此構(gòu)建起來的。
php-protobuf安裝
由于protobuf原生并不支持php,所以php如果使用pb則需要安裝相應(yīng)擴展。pecl install protobuf
環(huán)境中需要有protoc編譯器,下載安裝方式:$ wget https://github.com/google/protobuf/releases/download/v2.5.0/protobuf-2.5.0.tar.gz
$ tar zxvf protobuf-2.5.0.tar.gz
$ cd protobuf-2.5.0
$ ./configure --prefix=/usr/local/protobuf
$ sudo make
$ sudo make install
驗證安裝成功:$ /usr/local/protobuf/bin/protoc --version
libprotoc 2.5.0
php-protobuf安裝成功php --ri protobuflumen new rpclumen new rpc命令相當于composer create-project laravel/lumen rpccomposer require google/protobuf
在composer.json下添加classmap:{
"classmap": [
"protobuf/"
]
}
ok,準備工作都已做好了。
自己做一個demo
在代碼目錄下創(chuàng)建一個protobuf文件夾mkdir protobuf
進入該目錄,創(chuàng)建一個文件searchRequest.protosyntax = "proto3";
message SearchRequest {
string query = 1;
int32 page_number = 2;
int32 result_per_page = 3;
enum Corpus {
UNIVERSAL = 0;
WEB = 1;
IMAGES = 2;
LOCAL = 3;
NEWS = 4;
PRODUCTS = 5;
VIDEO = 6;
}
Corpus corpus = 4;
}
與50位技術(shù)專家面對面20年技術(shù)見證,附贈技術(shù)全景圖總結(jié)
以上是生活随笔為你收集整理的php protobuf 性能,php中使用protobuffer的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 用PNF添加剂修复烧机油不能多行驶怎么办
- 下一篇: 别克接通电源没点火,发动机故障灯会一直亮