php protobuf 性能,php中使用protobuffer
Protobuf 簡介
protobuf(Protocol buffers)是谷歌出品的跨平臺、跨語言、可擴展的數據傳輸及存儲的協議,是高效的數據壓縮編碼方式之一。
Protocol buffers 在序列化數據方面,它是靈活的,高效的。相比于 XML 來說,Protocol buffers 更加小巧,更加快速,更加簡單。一旦定義了要處理的數據的數據結構之后,就可以利用 Protocol buffers 的代碼生成工具生成相關的代碼。甚至可以在無需重新部署程序的情況下更新數據結構。只需使用 Protobuf 對數據結構進行一次描述,即可利用各種不同語言或從各種不同數據流中對你的結構化數據輕松讀寫。
Protocol buffers 很適合做數據存儲或 RPC 數據交換格式。可用于通訊協議、數據存儲等領域的語言無關、平臺無關、可擴展的序列化結構數據格式。
此外,Protobuf由于其在內網高效的數據交換效率,是被廣泛應用于微服務的,在谷歌的開源框架grpc即是基于此構建起來的。
php-protobuf安裝
由于protobuf原生并不支持php,所以php如果使用pb則需要安裝相應擴展。pecl install protobuf
環境中需要有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
在代碼目錄下創建一個protobuf文件夾mkdir protobuf
進入該目錄,創建一個文件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位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的php protobuf 性能,php中使用protobuffer的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 用PNF添加剂修复烧机油不能多行驶怎么办
- 下一篇: 别克接通电源没点火,发动机故障灯会一直亮