成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

php中使用protobuffer

biaoxiaoduan / 3020人閱讀

摘要:簡介是谷歌出品的跨平臺(tái)跨語言可擴(kuò)展的數(shù)據(jù)傳輸及存儲(chǔ)的協(xié)議,是高效的數(shù)據(jù)壓縮編碼方式之一。相比于來說,更加小巧,更加快速,更加簡單。此外,由于其在內(nèi)網(wǎng)高效的數(shù)據(jù)交換效率,是被廣泛應(yīng)用于微服務(wù)的,在谷歌的開源框架即是基于此構(gòu)建起來的。

Protobuf 簡介

protobuf(Protocol buffers)是谷歌出品的跨平臺(tái)、跨語言、可擴(kuò)展的數(shù)據(jù)傳輸及存儲(chǔ)的協(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 對(duì)數(shù)據(jù)結(jié)構(gòu)進(jìn)行一次描述,即可利用各種不同語言或從各種不同數(shù)據(jù)流中對(duì)你的結(jié)構(gòu)化數(shù)據(jù)輕松讀寫。

Protocol buffers 很適合做數(shù)據(jù)存儲(chǔ)或 RPC 數(shù)據(jù)交換格式??捎糜谕ㄓ崊f(xié)議、數(shù)據(jù)存儲(chǔ)等領(lǐng)域的語言無關(guān)、平臺(tái)無關(guān)、可擴(kuò)展的序列化結(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)擴(kuò)展。

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

驗(yàn)證安裝成功:

$ /usr/local/protobuf/bin/protoc  --version
libprotoc 2.5.0

php-protobuf安裝成功

php --ri protobuf
安裝lumen和google/protobuf依賴
lumen new rpc
lumen new rpc命令相當(dāng)于composer create-project laravel/lumen rpc
composer require google/protobuf

composer.json下添加classmap:

{
    "classmap": [
        "protobuf/"
    ]
}

ok,準(zhǔn)備工作都已做好了。

自己做一個(gè)demo

在代碼目錄下創(chuàng)建一個(gè)protobuf文件夾mkdir protobuf

進(jìn)入該目錄,創(chuàng)建一個(gè)文件searchRequest.proto

syntax = "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;
}

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/31753.html

相關(guān)文章

  • 從java的序列化和反序列化說起

    摘要:從的序列化和反序列化說起序列化是將對(duì)象的狀態(tài)信息轉(zhuǎn)換為可以存儲(chǔ)或傳輸?shù)男问降倪^程,而相反的過程就稱為反序列化。當(dāng)使用接口來進(jìn)行序列化與反序列化的時(shí)候需要開發(fā)人員重寫與方法。 從java的序列化和反序列化說起 序列化 (Serialization)是將對(duì)象的狀態(tài)信息轉(zhuǎn)換為可以存儲(chǔ)或傳輸?shù)男问降倪^程,而相反的過程就稱為反序列化。 在java中允許我們創(chuàng)建可復(fù)用的對(duì)象,但是這些對(duì)象僅僅存在j...

    whlong 評(píng)論0 收藏0
  • 前端20個(gè)靈魂拷問 徹底搞明白你就是級(jí)前端工程師 【下篇】

    摘要:安裝后已經(jīng)完成了安裝,并且等待其他的線程被關(guān)閉。激活后在這個(gè)狀態(tài)會(huì)處理事件回調(diào)提供了更新緩存策略的機(jī)會(huì)。并可以處理功能性的事件請(qǐng)求后臺(tái)同步推送。廢棄狀態(tài)這個(gè)狀態(tài)表示一個(gè)的生命周期結(jié)束。 showImg(https://segmentfault.com/img/bVbwWJu?w=2056&h=1536); 不知不覺,已經(jīng)來到了最后的下篇 其實(shí)我寫的東西你如果認(rèn)真去看,跟著去寫,應(yīng)該能有...

    fireflow 評(píng)論0 收藏0
  • 基于騰訊開源的msec來進(jìn)行php開發(fā)模塊

    摘要:毫秒服務(wù)引擎是一個(gè)開源框架,適用于在廉價(jià)機(jī)器組成的集群上開發(fā)和運(yùn)營分布式后臺(tái)服務(wù)。毫秒服務(wù)引擎集名字發(fā)現(xiàn)服務(wù)負(fù)載均衡業(yè)務(wù)監(jiān)控灰度發(fā)布容量管理日志管理存儲(chǔ)于一體。 msecphp 毫秒服務(wù)引擎(Mass Service Engine in Cluster)是一個(gè)開源框架,適用于在廉價(jià)機(jī)器組成的集群上開發(fā)和運(yùn)營分布式后臺(tái)服務(wù)。 毫秒服務(wù)引擎集RPC、名字發(fā)現(xiàn)服務(wù)、負(fù)載均衡、業(yè)務(wù)監(jiān)控、灰度發(fā)...

    W4n9Hu1 評(píng)論0 收藏0
  • 基于騰訊開源的msec來進(jìn)行php開發(fā)模塊

    摘要:毫秒服務(wù)引擎是一個(gè)開源框架,適用于在廉價(jià)機(jī)器組成的集群上開發(fā)和運(yùn)營分布式后臺(tái)服務(wù)。毫秒服務(wù)引擎集名字發(fā)現(xiàn)服務(wù)負(fù)載均衡業(yè)務(wù)監(jiān)控灰度發(fā)布容量管理日志管理存儲(chǔ)于一體。 msecphp 毫秒服務(wù)引擎(Mass Service Engine in Cluster)是一個(gè)開源框架,適用于在廉價(jià)機(jī)器組成的集群上開發(fā)和運(yùn)營分布式后臺(tái)服務(wù)。 毫秒服務(wù)引擎集RPC、名字發(fā)現(xiàn)服務(wù)、負(fù)載均衡、業(yè)務(wù)監(jiān)控、灰度發(fā)...

    anRui 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<