日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

Thrift的簡(jiǎn)單使用

系統(tǒng) 2274 0

Thrift的簡(jiǎn)單使用 - Season In The Code - 博客頻道 - CSDN.NET


Thrift的簡(jiǎn)單使用


分類:
Facebook技術(shù)


3658人閱讀
評(píng)論 (0)
收藏
舉報(bào)

?

Thrift( ?
http://github.com/facebook/thrift

)是一個(gè)跨語(yǔ)言服務(wù)部署架構(gòu),2007年由Facebook開(kāi)發(fā),之后在2008年加到Apache計(jì)劃中( ?
http://incubator.apache.org/thrift/

)。它是類似于SOAP,CORBA以及Google Protocol Buffers這樣的服務(wù)架構(gòu)。Thrift提供了完整client/server RPC的實(shí)現(xiàn),只需要定義好中間定義語(yǔ)言,就可以生成指定語(yǔ)言的代碼(包括client和server)。

?

Thrift能生成的語(yǔ)言有: C++, Java, Python, PHP, Ruby, Erlang, Perl, Haskell, C#, Cocoa, Smalltalk, and OCaml

?

?

使用thrift,以下例子你可以在
?
http://incubator.apache.org/thrift/

中找到。

定義.thrift接口文件。



你需要知道thrift所支持的類型( ?
http://wiki.apache.org/thrift/ThriftTypes

)

下面是一個(gè)簡(jiǎn)述:

類型 描述
bool true, false
byte 8位的有符號(hào)整數(shù)
i16 16位的有符號(hào)整數(shù)
i32 32位的有符號(hào)整數(shù)
i64 64位的有符號(hào)整數(shù)
double 64位的浮點(diǎn)數(shù)
string UTF-8編碼的字符串
binary 字符數(shù)組
struct 結(jié)構(gòu)體
list<type> 有序的元素列表,類似于STL的vector
set<type> 無(wú)序的不重復(fù)元素集,類似于STL的set
map<type1,type2> key-value型的映射,類似于STL的map
exception 是一個(gè)繼承于本地語(yǔ)言的exception基類
service 服務(wù)。包含多個(gè)函數(shù)接口(純虛函數(shù))

?

?

在了解過(guò)thrift內(nèi)置類型之后,我們可以簡(jiǎn)單地定義一個(gè)服務(wù),把用戶的信息從前端發(fā)送到服務(wù)器,然后當(dāng)需要的時(shí)候再?gòu)姆?wù)器獲取某個(gè)用戶的信息:

        
  1. struct?UserProfile?{??
  2. ?? 1 :?i32?uid,??
  3. ?? 2 :?string?name,??
  4. }??
  5. ??
  6. service?UserStorage?{??
  7. ??void?store( 1 :?UserProfile?user),??
  8. ??UserProfile?retrieve( 1 :?i32?uid)??
  9. }??

把以上代碼存到 service.thrift文件中。

?



如果我們需要用python來(lái)做輸出語(yǔ)言。就在命令行中輸入:

        
  1. thrift??–r??–gen??py??service.thrift??

之后,你就會(huì)在當(dāng)前目錄下看到一個(gè)新建的目錄叫”gen-py”,在里面你就可以看到由service.thrift生成的python服務(wù)接口代碼。

?

UserStorage.py中的Client就是客戶端調(diào)用的接口,只需要?jiǎng)?chuàng)建一個(gè)Client實(shí)例就可以調(diào)用例子中的store和retrieve的接口。而Iface就是服務(wù)端所需要實(shí)現(xiàn)的接口,對(duì)應(yīng)例子中的store和retrieve的邏輯處理。

?

ttypes.py是存放枚舉類型的結(jié)構(gòu)。

?

UserStorage-remote.py是一個(gè)客戶端調(diào)用服務(wù)接口的demo示例,想知道詳細(xì)的可以去看看。

Thrift的簡(jiǎn)單使用


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 庄河市| 扬州市| 惠水县| 新宁县| 大宁县| 长治市| 咸宁市| 体育| 明光市| 沂水县| 涞水县| 晋中市| 榕江县| 桦川县| 奇台县| 刚察县| 资阳市| 高要市| 万山特区| 东乡族自治县| 明溪县| 泽普县| 沧州市| 正定县| 邻水| 雷波县| 藁城市| 塘沽区| 额济纳旗| 盘锦市| 普定县| 宽甸| 宁安市| 松溪县| 榆树市| 栾城县| 津南区| 紫阳县| 工布江达县| 云阳县| 德阳市|