日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

thrift介绍及应用(二)—简单应用

發布時間:2025/3/11 编程问答 14 豆豆
生活随笔 收集整理的這篇文章主要介紹了 thrift介绍及应用(二)—简单应用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

原文:http://blog.csdn.net/guxch/article/details/12162131

-----------------------------------------------------------------------------------

【接上文“thrift介紹及應用(一)—介紹”】


六、一個最簡單的實例

Thrift文件(demo.thirft,來自官網)如下:

[plain]?view plaincopy
  • struct?UserProfile???
  • {??
  • ??1:i32?uid,??
  • ??2:string?name,??
  • ??3:string?blurb??
  • }??
  • ??
  • service?UserStorage???
  • {??
  • ?void?store(1:?UserProfile?user),??
  • ?UserProfile?retrieve(1:?i32?uid)??
  • }??
  • 運行

    [plain]?view plaincopy
  • thrift?–gen?cpp?demo.thrift??
  • 則生成的文件如下:


    • demo_constants:這個文件似乎沒有用,可以在其中定義全局變量之類的東西。
    • demo_types:類型定義(例子中的structUserProfile)都在這個文件中。
    • UserStorage:這個文件比較重要,內容比較多,其中的內如下圖。圖左邊是兩個service方法的傳入傳出參數,注意其中每個的實現都有兩個,一個是帶p的,被用在客戶端代碼中,另一個是不帶p的,被用在服務器端代碼中,其實它們的代碼相當一致(相同的函數部分),不知道thrift這樣做的用意在哪。圖右邊UserStorageIf是消息接口定義,UserStorageIfFactory等是接口的“工廠”。UserStorageNull挺有意思,大概是什么都不做(既然什么都不做,要它做什么呢?)。UserStorageMultiface是將多個UserStorageIf集合起來(vector)處理。對用戶來講,客戶端真正有意義的代碼在UserStorageClient中,寫客戶端時,需要認真查看其接口,在其上編寫自己的業務邏輯。服務器的處理過程在UserStorageProcess類中(但我們自己邏輯在另外的地方)。
    • UserStorage_server.skeleton:這個是服務器端的框架(其實它可以運行),我們自己的邏輯(例子中store到數據庫中或從數據庫中retrieve)在UserStorageHandler類中實現,這個類從UserStorageIf繼承而來。文件中還有一個main函數,其中給出了以TSimpleServer形式(單線程)實現的服務器。實際的應用中,UserStorage_server.skeleton這個文件將被拆分,業務邏輯可能有若干文件,服務器端的實現也許要復雜一些,與其他業務構成一個main函數,這里的main可能叫做thriftserver_main更合適一些。

    需要強調的是,thrift有自己的網絡傳輸格式,因此thrift應用適合于我們不關心傳輸過程,只關心我們自己的應用層的消息的傳遞(也就是RPC的概念)的場合,如果規定了網絡傳輸協議,thrift并不適合。

    其他實際的應用見hadoop和Hbase的Thrift接口說明。

    ?

    【注:本文參考了Mark Slee, Aditya Agarwal and Marc Kwiatkowski寫的“Thrift:Scalable Cross-Language Services Implementation”一文,該文是Thrift的White Paper。】



    總結

    以上是生活随笔為你收集整理的thrift介绍及应用(二)—简单应用的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。