(Translated by https://www.hiragana.jp/)
Thrift - 維基百科,自由的百科全書 とべいたり內容

Thrift

維基百科ひゃっか自由じゆうてき百科全書ひゃっかぜんしょ
Apache Thrift
開發かいはつしゃApache軟件基金ききんかい
とうぜん版本はんぽん0.9.3(2015ねん10がつ6にち,​9ねんまえ​(2015-10-06
原始げんし碼庫 編輯維基數據鏈接
類型るいけいとおほど過程かてい調ちょうようかまち
許可きょか協議きょうぎApache許可きょかしょう 2.0
あみthrift.apache.org

Thriftいちしゅせっこう描述げんしんせいどおり協議きょうぎ[1]它被ようらい定義ていぎ創建そうけんまたがげんてき服務ふくむ[2]它被とうさくいちとおほど過程かてい調ちょうよう(RPC)かまちらい使用しようゆかりFacebookためだい規模きぼまたがげん服務ふくむ開發かいはつ」而開發かいはつてき。它通過つうか一個代碼生成引擎聯合了一個軟件棧,らい創建そうけん不同ふどう程度ていどてきぬいてきまたが平台ひらだいこうこう服務ふくむ使用しようC#C++もとPOSIXけんよう系統けいとう[3])、Cappuccino、[4]CocoaDelphiErlangGoHaskellJavaNode.jsOCamlPerlPHPPythonRubySmalltalk[5]雖然它以ぜんよしFacebook開發かいはつてきただし它現ざいApache軟件基金ききんかいてき開源かいげん項目こうもくりょう。該實現じつげん描述ざい2007ねん4がつてきいちへんゆかりFacebook發表はっぴょうてき技術ぎじゅつ論文ろんぶんちゅう,該論文ろんぶんげんよしApacheてのひらかん[6]

Apache Thrift API CS

Thrift包含ほうがん一套完整的棧來創建客戶端和服務端程序。[7]いただきそう部分ぶぶんよしThrift定義ていぎ生成せいせいてきだい碼。而服務ふくむそくよし這個ぶんけんきゃくはし處理しょりだい生成せいせいざい生成せいせいてきだい碼里かい創建そうけん不同ふどう於內けん類型るいけいてきすうよりどころ結構けっこうなみはた作為さくい結果けっか發送はっそう協議きょうぎつて輸層これ運行うんこうてきいち部分ぶぶんゆうりょうThrift,就可以定義ていぎ一個服務或改變通訊和傳輸協議,而無需重新編しんぺんやくだい碼。じょりょうきゃくはし部分ぶぶんそと,Thriftかえ包括ほうかつ伺服基礎きそしつらえほどこせらい集成しゅうせい協議きょうぎでん輸,如阻塞、阻塞及多せんほど伺服。棧中作為さくいI/O基礎きそてき部分ぶぶんたい不同ふどうてきげんそくゆう不同ふどうてき實現じつげん

Thrift支持しじ眾多どおり協議きょうぎ[7]

  • TBinaryProtocol – 一種簡單的二進制格式,簡單かんたんただしぼっ有為ゆうい空間くうかん效率こうりつ而優ぶんほん協議きょうぎ處理しょりおこりらいさらかいただしさらなん調しらべためし
  • TCompactProtocol – さら緊湊てきしんせい格式かくしき處理しょりおこりらい通常つうじょう同樣どうようだかこう
  • TDebugProtocol – 一種人類可讀的文本格式,ようらいきょうすけ調ちょうためし
  • TDenseProtocol – あずかTCompactProtocol類似るいじはたつて輸數よりどころてき元信もとのぶいき剝離。
  • TJSONProtocol – 使用しようJSON對數たいすうよりどころへん碼。
  • TSimpleJSONProtocol – いちしゅただうつし協議きょうぎ,它不能ふのうThrift解析かいせきいんため使用しようJSON丟棄りょうもとすうよりどころ適合てきごうよう腳本げんらい解析かいせき[8]

支持しじてきつて協議きょうぎゆう

  • TFileTransport – 該傳輸協議きょうぎかいうつしぶんけん
  • TFramedTransport – とう使用しよう一個非阻塞伺服器時,要求ようきゅう使用しよう這個でん協議きょうぎ。它按幀來發送はっそうすうよりどころ,其中ごと一幀的開頭是長度信息。
  • TMemoryTransport – 使用しようそんもうかうつわうつ輸入ゆにゅう輸出ゆしゅつ。(Javaてき實現じつげん使用しようりょういち簡單かんたんてきByteArrayOutputStream。)
  • TSocket – 使用しよう阻塞てき套接I/O來傳らいでん輸。
  • TZlibTransport – ようzlib執行しっこう壓縮あっしゅくよう連接れんせついちでん協議きょうぎ

Thriftかえ提供ていきょう眾多てき伺服包括ほうかつ

  • TNonblockingServer – 一個多線程伺服器,它使用しよう阻塞I/O(Javaてき實現じつげん使用しようりょうNIOつうどう)。TFramedTransport必須ひっす跟這伺服はい使用しよう
  • TSimpleServer – 一個單線程伺服器,它使用しよう標準ひょうじゅんてき阻塞I/O。はかためし很有よう
  • TThreadPoolServer – 一個多線程伺服器,它使用しよう標準ひょうじゅんてき阻塞I/O。

ゆうてん

[編輯へんしゅう]

Thrift一些已經明確的優點包括:[らいみなもと請求せいきゅう]

  • 跟一些替だい選擇せんたくSOAPそうまたがげん序列じょれつてき代價だいかさらていいんため使用しようしんせい格式かくしき
  • 它有一個又瘦又乾淨的庫,ぼつゆうへん碼框ぼつゆうXML配置はいちぶんけん
  • 綁定感覺かんかく自然しぜんれい如,Java使用しようjava.util.ArrayList<String>C++使用しようstd::vector<std::string>
  • 應用おうようそうどおり訊格しきあずか序列じょれつそうどおり訊格しき完全かんぜん分離ぶんりてき。它們獨立どくりつおさむあらため
  • あずか定義ていぎてき序列じょれつ格式かくしき包括ほうかつしんせい格式かくしきたいHTTP友好ゆうこうてき格式かくしき,以及緊湊てきしんせい格式かくしき
  • けんさくまたが言文げんぶんけん序列じょれつ
  • 協議きょうぎ使用しよう軟版本號ほんごうせい軟件版本はんぽん管理かんり[需要じゅよう解釋かいしゃく]。Thrift要求ようきゅう一個中心化的和顯式的版本號機制,れいしゅ版本はんぽんごう/版本はんぽんごう耦合てきだんたい以輕ひかえせいRPC調ちょうようてきえんじすすむ
  • ぼつゆう構建依賴いらい也不含非標準ひょうじゅんてき軟件。存在そんざいけんようてき軟件許可きょかしょう混用こんようてき情況じょうきょう

創建そうけんいちThrift服務ふくむ

[編輯へんしゅう]

ThriftゆかりC++へんうつしただし以為眾多げん創建そうけんだい碼。よう創建そうけんいちThrift服務ふくむ必須ひっすうつしいち些Thriftぶんけんらい描述它,ため標語ひょうごげん生成せいせいだい碼,なみ且寫一些代碼來啟動伺服器及從客戶端調用它。下面かめん就是一個這樣的描述文件的代碼示例:

enum PhoneType {
 HOME,
 WORK,
 MOBILE,
 OTHER
}

struct Phone {
 1: i32 id,
 2: string number,
 3: PhoneType type
}

Thriftはたゆかり這個描述しんいき生成せいせい獨立どくりつてきだい碼。れい如,ざいJavaさとPhoneTypeはたこれPhoneるいちゅういち簡單かんたんてきenum

まいり

[編輯へんしゅう]

參考さんこう文獻ぶんけん

[編輯へんしゅう]
  1. ^ あんそう使用しようJavaてきApache Cassandraだい4部分ぶぶん(Thriftきゃく户端). http://www.sodeso.nl/: Sodeso–軟件開發かいはつ解決かいけつ方案ほうあん. [2011-03-30]. (原始げんし內容そん檔於2010-08-15). Thriftいち獨立どくりつてきApache項目こうもく簡單かんたんせつ,就是いちしゅしんせいどおり協議きょうぎ 英文えいぶん
  2. ^ Andrew Prunicki. Apache Thrift:かい. http://www.ociweb.com/: 對象たいしょう計算けいさん有限ゆうげん公司こうし一家いっか開放かいほう解決かいけつ方案ほうあん公司こうし. [2011-04-11]. (原始げんし內容そん於2011-07-23). 通過つうか一種簡單且直截了當的接口定義語言(IDL),Thrift允許いんきょ你定義和よしかず創建そうけんいちしゅ服務ふくむ,這種服務ふくむすんで以用多種たしゅげんらい實現じつげんまた以由多種たしゅげんらい使用しよう利用りようだい碼生成功せいこうのう,Thrift創建そうけんいち套文けんしかこう通過つうか這套ぶんけんらい創建そうけん服務ふくむはしきゃくはしほどじょじょりょう操作性そうさせいわるそと,Thriftかえ非常ひじょうだかこう,這得えき於一套獨特どくとくてきざい時間じかん空間くうかんじょうだかこうてき序列じょれつせい 英文えいぶん
  3. ^ Thriftてき要求ようきゅうぺーじめんそん檔備份そん互聯もう檔案かん),よう支持しじWindowsさん這裏ぺーじめんそん檔備份そん互聯もう檔案かん英文えいぶん
  4. ^ Fred Potter,使用しようThrift + Cappuccinoぺーじめんそん檔備份そん互聯もう檔案かん),parallel48てき甜美てき郵件はくきゃく,2010ねん6がつ10日とおか英文えいぶん
  5. ^ Andrew Prunicki. Apache Thrift:だい生成せいせい. http://www.ociweb.com/: 對象たいしょう計算けいさん有限ゆうげん公司こうし一家いっか開放かいほう解決かいけつ方案ほうあん公司こうし. [2011-04-12]. (原始げんし內容そん於2011-07-23). Thriftざい不同ふどう程度ていどじょう支持しじ許多きょたげんかんせいてきめいたん如下:(請小しん不能ふのう僅僅きんきんいんため你的げんざいぼうしゅ程度ていどじょう支持しじ,就假設かせつ支持しじ所有しょゆうてきThrift特性とくせい如Python,僅支持しじTBinaryProtocol。)Cocoa、C++、C#、Erlang、Haskell、Java、OCaml、Perl、PHP、Python、RubySmalltalk。 英文えいぶん
  6. ^ Mark Slee、Aditya Agarwal、Marc Kwiatkowski,Thrift:だい規模きぼまたがげん服務ふくむてき實現じつげんぺーじめんそん檔備份そん互聯もう檔案かん英文えいぶん
  7. ^ 7.0 7.1 Andrew Prunicki. Apache Thrift:かい. http://www.ociweb.com/: 對象たいしょう計算けいさん有限ゆうげん公司こうし一家いっか開放かいほう解決かいけつ方案ほうあん公司こうし. [2011-04-11]. (原始げんし內容そん於2011-07-23). 該棧てきいただきそう部分ぶぶんしたがえ你的Thrift定義ていぎぶんけん生成せいせいてきだい碼。Thrift服務ふくむざい生成せいせいてききゃくはし處理しょりだい碼中提供ていきょう結果けっかざいちゅう,這些よう棕色かまち表示ひょうじてき發送はっそうてきすうよりどころ結構けっこう不同ふどう於內けん類型るいけい)也由生成せいせいてきだい碼產せい。這些結果けっかよし紅色こうしょくかまち表示ひょうじつう訊和でん協議きょうぎThrift運行うんこうくらてきいち部分ぶぶんよし此,ようThrift,你可以定義ていぎいち服務ふくむなみ自由じゆう改變かいへんどおり訊和でん協議きょうぎ,而無需重しん生成せいせい你的だい碼。Thriftかえ包括ほうかつ一個伺服器基礎設施,以集成しゅうせい各個かっこどおり訊和でん協議きょうぎ。它支持しじ阻塞、阻塞、單線たんせんほど以及せんほど伺服。棧中「作為さくいI/O基礎きそてき部分ぶぶんそくいんげん而異てきたい於JavaPythonもうからまI/O,Thriftたい其內けんおこりいたりょう槓桿作用さよう,而C++てき實現じつげん使用しようりょう自己じこてき習慣しゅうかん 英文えいぶん
  8. ^ Skelton, Steven. 对开发者友好ゆうこうてきThrift请求こころざし. [2014ねん7がつ3にち]. (原始げんし內容そん於2014ねん7がつ14にち). 英文えいぶん

外部がいぶ連結れんけつ

[編輯へんしゅう]