国精品产品一区,深夜福利视频一区二区,日韩av自拍,国产一区二区高清

您的位置: 首頁  >  軟件下載  >  其他類別  >  Apache Thrift(服務(wù)開發(fā)框架)
95.56%
4.44%

Apache Thrift(服務(wù)開發(fā)框架) v0.14.1 官方版

  • 軟件介紹
  • 相關(guān)下載

Apache Thrift(服務(wù)開發(fā)框架)提供跨語言服務(wù)開發(fā)功能,用戶可以在軟件上使用多種語言開發(fā)你的服務(wù)項(xiàng)目,結(jié)合編輯器就可以輸入代碼內(nèi)容,讓用戶可以設(shè)計(jì)各種編程語言支持的客戶端程序和服務(wù)端程序,有需要的用戶快來統(tǒng)一下載體驗(yàn)吧。

軟件提供很多數(shù)據(jù)類型,提供很多接口類型,滿足大部分程序接入需求,結(jié)合服務(wù)器功能就可以執(zhí)行數(shù)據(jù)傳輸,根據(jù)輸入/輸出協(xié)議創(chuàng)建處理器,特定于服務(wù)的處理器實(shí)現(xiàn)由編譯器生成,為用戶提供更方便的服務(wù)項(xiàng)目編譯方案;Apache Thrift支持的語言還是很多的,C ++,Java,Python等常用的語言都支持,為可擴(kuò)展的跨語言服務(wù)開發(fā)提供更多選擇!

軟件功能

      Apache Thrift功能:

      界面描述語言-一切都在IDL文件中指定,可以從該文件生成多種語言的綁定。

      語言綁定-許多語言和環(huán)境都支持Thrift

      C++

      C#

      Cocoa

      D

      Delphi

      Erlang

      Haskell

      Java

      OCaml

      Perl

      PHP

      Python

      Ruby

      Smalltalk

      ~名稱空間-每個(gè)Thrift文件位于其自己的名稱空間中,允許您在多個(gè)Thrift文件中使用相同的標(biāo)識符

      語言名稱空間-每個(gè)Thrift文件,您可以指定每種編程語言應(yīng)使用的名稱空間

      基本類型-Thrift有少量的基本類型。

      常量和枚舉-可以為常量值分配邏輯名稱

      結(jié)構(gòu)-使用結(jié)構(gòu)對相關(guān)數(shù)據(jù)進(jìn)行分組。結(jié)構(gòu)可以具有任何類型的字段。

      稀疏結(jié)構(gòu)-尚未設(shè)置的可選基本字段和為空的參考字段將不會通過電線發(fā)送

      結(jié)構(gòu)演化-通過使用字段的整數(shù)標(biāo)識符來處理字段的添加和刪除,而不會破壞現(xiàn)有的客戶端

      容器-您可以使用任何類型的集,列表和映射:基本類型,結(jié)構(gòu)和其他容器。

      類型定義-可以給任何類型一個(gè)更好地描述它的名稱

      服務(wù)-服務(wù)是一組功能

      服務(wù)繼承-子服務(wù)實(shí)現(xiàn)其基本服務(wù)的所有功能,并且可以具有其他功能

      異步調(diào)用-可以異步調(diào)用不返回結(jié)果的函數(shù),因此在服務(wù)器完成對請求的處理之前,不會阻塞客戶端。服務(wù)器可以并行/無序執(zhí)行同一客戶端的異步調(diào)用

      異常-如果發(fā)生錯(cuò)誤,則函數(shù)可以引發(fā)標(biāo)準(zhǔn)或用戶定義的異常

      循環(huán)結(jié)構(gòu)-從0.9.2版開始,Thrift支持包含自身的結(jié)構(gòu)或以后要聲明的其他結(jié)構(gòu)。

      非功能

      Apache Thrift不支持以下功能:

      struct繼承-改用struct組合

      多態(tài)-由于沒有繼承,因此也不支持多態(tài)

      重載-服務(wù)中的所有方法都必須唯一地命名

      異構(gòu)容器-容器中的所有物品都必須是同一類型

      空返回-無法直接從函數(shù)返回空。使用包裝器結(jié)構(gòu)或標(biāo)記值代替

軟件特色

      Apache Thrift是一個(gè)軟件項(xiàng)目,涉及多種編程語言和用例。我們的目標(biāo)是使跨語言的可靠,高性能的通信和數(shù)據(jù)序列化盡可能高效和無縫。Thrift最初由Facebook開發(fā),于2007年4月開源,并于2008年5月進(jìn)入Apache孵化器。Thrift于2010年10月成為Apache TLP。

      Apache Thrift旨在體現(xiàn)以下價(jià)值觀:

      簡單性 Thrift代碼簡單易用,沒有不必要的依賴關(guān)系。

      透明 節(jié)儉符合所有語言中最常見的習(xí)慣用法。

      一致性 生態(tài)位,特定于語言的功能屬于擴(kuò)展,而不是核心庫。

      性能 力爭性能第一,優(yōu)雅第二。

軟件優(yōu)勢

      1、節(jié)儉的類型

      Thrift類型系統(tǒng)旨在使程序員無論使用哪種編程語言,都可以盡可能多地使用本機(jī)類型。此信息基于并且取代了Thrift白皮書中的信息。的節(jié)儉IDL提供了用于產(chǎn)生針對每個(gè)目標(biāo)語言代碼的類型的描述。

      2、基本類型

      選擇基本類型的目的是簡化和清楚而不是數(shù)量眾多,重點(diǎn)放在所有編程語言中可用的鍵類型上。

      bool:布爾值(對或錯(cuò))

      字節(jié):8位有符號整數(shù)

      i16:16位有符號整數(shù)

      i32:32位有符號整數(shù)

      i64:64位有符號整數(shù)

      double:64位浮點(diǎn)數(shù)

      字符串:使用UTF-8編碼編碼的文本字符串

      3、結(jié)構(gòu)

      節(jié)儉結(jié)構(gòu)定義了一個(gè)公共對象–它們本質(zhì)上等同于OOP語言中的類,但沒有繼承。一個(gè)結(jié)構(gòu)具有一組強(qiáng)類型字段,每個(gè)字段都有一個(gè)唯一的名稱標(biāo)識符。字段可能具有Thrift IDL中描述的各種注釋(數(shù)字字段ID,可選的默認(rèn)值等) 。

      4、容器

      節(jié)儉容器是強(qiáng)類型的容器,它們映射到大多數(shù)編程語言中的常用容器和常用容器類型。

      共有三種容器類型:

      列表:元素的有序列表。轉(zhuǎn)換為STL向量,Java ArrayList,腳本語言的本機(jī)數(shù)組等。

      放:無序的唯一元素集。轉(zhuǎn)換為STL集,Java HashSet,Python中的集等。注意:PHP不支持集,因此與List相似。

      map :嚴(yán)格唯一的鍵到值的映射。轉(zhuǎn)換為STL映射,Java HashMap,PHP關(guān)聯(lián)數(shù)組,Python / Ruby字典等。盡管提供了默認(rèn)值,但類型映射未明確固定。添加了自定義代碼生成器指令,以允許以各種目標(biāo)語言替換自定義類型。

使用說明

      例子

      Apache Thrift允許您在簡單的定義文件中定義數(shù)據(jù)類型和服務(wù)接口。將該文件作為輸入,編譯器將生成用于輕松構(gòu)建跨編程語言無縫通信的RPC客戶端和服務(wù)器的代碼。您可以直接開始工作,而無需編寫大量的樣板代碼來序列化和傳輸對象并調(diào)用遠(yuǎn)程方法。

      以下示例是一個(gè)簡單的服務(wù),用于存儲Web前端的用戶對象。

      節(jié)儉定義文件

      Python客戶端

      Java服務(wù)器

      初始化服務(wù)器

      節(jié)儉的接口描述語言

      對于Thrift版本0.15.0。

      Thrift接口定義語言(IDL)允許Thrift Types的定義。Thrift代碼生成器處理Thrift IDL文件以生成用于各種目標(biāo)語言的代碼,以支持IDL文件中定義的結(jié)構(gòu)和服務(wù)。

      描述

      這是Thrift IDL的描述。

      文件

      每個(gè)Thrift文檔包含0個(gè)或多個(gè)標(biāo)頭,后跟0個(gè)或多個(gè)定義。

      標(biāo)頭

      標(biāo)頭可以是Thrift包含,C ++包含或名稱空間聲明。

      節(jié)儉包含

      包含使來自另一個(gè)文件的所有符號可見(帶有前綴),并將相應(yīng)的包含語句添加到為此Thrift文檔生成的代碼中。

      C ++包含

      C ++包含將自定義C ++包含添加到此Thrift文檔的C ++代碼生成器的輸出中

      命名空間

      名稱空間聲明了哪個(gè)名稱空間/程序包/模塊/等。該文件中的類型定義將以目標(biāo)語言聲明。名稱空間范圍指示名稱空間適用的語言。范圍“ *”表示名稱空間適用于所有目標(biāo)語言

      定義

      常量

      typedef

      typedef為類型創(chuàng)建備用名稱

      枚舉

      一個(gè)枚舉創(chuàng)建一個(gè)帶有命名值的枚舉類型。如果沒有提供常量值,則第一個(gè)元素的值為0,或者對于任何后續(xù)元素的值都大于先前的值。提供的任何常量值都必須為非負(fù)數(shù)。

      Senum

      Senum(和Slist)現(xiàn)在已棄用,均應(yīng)替換為String。

      結(jié)構(gòu)

      結(jié)構(gòu)是Thrift中的基本組成類型。每個(gè)字段的名稱在結(jié)構(gòu)中必須唯一。

      注意:該xsd_all關(guān)鍵字在Facebook內(nèi)部具有某些用途,但在Thrift本身中沒有任何用途。強(qiáng)烈建議不要使用此功能

      聯(lián)盟

      聯(lián)合與結(jié)構(gòu)相似,不同之處在于,聯(lián)合提供了一種傳輸可能的一組字段中的一個(gè)字段的方法,就像C ++中的union {}一樣。因此,工會成員被隱含地視為可選的(請參閱要求)。

      注意:該xsd_all關(guān)鍵字在Facebook內(nèi)部具有某些用途,但在Thrift本身中沒有任何用途。強(qiáng)烈建議不要使用此功能

      異常

      異常與結(jié)構(gòu)相似,不同之處在于它們旨在與目標(biāo)語言中的本機(jī)異常處理機(jī)制集成。在異常中,每個(gè)字段的名稱必須唯一。

      需求的一般規(guī)則如下:

      必填

      寫入:必填字段始終會被寫入,并且需要設(shè)置。

      讀取:必填字段始終被讀取,并且預(yù)期包含在輸入流中。

      默認(rèn)值:始終寫入

      如果在讀取過程中缺少必填字段,則預(yù)期的行為是向調(diào)用方指示未成功的讀取操作,例如,引發(fā)異常或返回錯(cuò)誤。

      由于這種行為,必填字段極大地限制了有關(guān)軟版本控制的選項(xiàng)。因?yàn)楸仨氃谧x取時(shí)顯示它們,所以不能棄用這些字段。如果必填字段將被刪除(或更改為可選字段),則各版本之間的數(shù)據(jù)將不再兼容。

      可選

      寫入:僅在設(shè)置了可選字段后才寫入它們

      讀取:可選字段可能會或可能不會成為輸入流的一部分。

      默認(rèn)值:在設(shè)置了isset標(biāo)志時(shí)寫入

      大多數(shù)語言實(shí)現(xiàn)都使用推薦的所謂“ isset”標(biāo)志的做法來指示是否設(shè)置了特定的可選字段。僅寫入設(shè)置了此標(biāo)志的字段,相反,僅當(dāng)從輸入流中讀取了字段值時(shí),才設(shè)置該標(biāo)志。

      默認(rèn)要求(隱式)

      寫:理論上,字段總是寫的。該規(guī)則有一些例外,請參見下文。

      讀取:與可選字段一樣,該字段可以或可以不屬于輸入流。

      默認(rèn)值:可能無法寫入(請參閱下一節(jié))

      默認(rèn)要求是一個(gè)很好的起點(diǎn)。所需的行為是可選的和必需的,因此內(nèi)部名稱為“選擇加入,要求退出”。盡管從理論上講這些字段應(yīng)該被寫入(“ req-out”),但實(shí)際上未設(shè)置的字段并不總是被寫入。當(dāng)字段包含一個(gè)價(jià)值,顧名思義是不能通過節(jié)儉運(yùn)輸?shù)摹?shí)現(xiàn)此目的的唯一方法是根本不編寫該字段,而這正是大多數(shù)語言所做的。

      默認(rèn)值的語義

      有關(guān)該主題的討論正在進(jìn)行中,有關(guān)詳細(xì)信息,請參見JIRA。并非所有實(shí)現(xiàn)都以完全相同的方式對待默認(rèn)值,但是當(dāng)前狀態(tài)或多或少地是通常在初始化時(shí)設(shè)置默認(rèn)字段。因此,可能無法寫入等于默認(rèn)值的值,因?yàn)樽x取端將隱式設(shè)置該值。另一方面,無論如何,實(shí)現(xiàn)都可以自由寫入默認(rèn)值,因?yàn)闆]有嚴(yán)格的限制可以防止這種情況發(fā)生。

      這里要記住的主要事實(shí)是,任何未寫入的默認(rèn)值都隱式地成為接口版本的一部分。如果更改了默認(rèn)設(shè)置,則界面也會更改。相反,如果將默認(rèn)值寫入輸出數(shù)據(jù),則IDL中的默認(rèn)值可以隨時(shí)更改而不會影響序列化數(shù)據(jù)。

      節(jié)儉的網(wǎng)絡(luò)堆棧

      Apache Thrift網(wǎng)絡(luò)堆棧的簡單表示

      運(yùn)輸

      傳輸層為從網(wǎng)絡(luò)讀取/向網(wǎng)絡(luò)寫入提供了簡單的抽象。這使Thrift可以將基礎(chǔ)傳輸與系統(tǒng)的其余部分解耦(例如,序列化/反序列化)。

      以下是傳輸接口公開的一些方法:

      打開

      關(guān)閉

      讀

      寫

      齊平

      除了上面的傳輸接口之外,Thrift還使用ServerTransport接口來接受或創(chuàng)建原始傳輸對象。顧名思義,ServerTransport主要用于服務(wù)器端,為傳入的連接創(chuàng)建新的傳輸對象。

      打開

      聽

      接受

      關(guān)閉

      以下是大多數(shù)Thrift支持的語言可用的傳輸方式:

      文件:對磁盤上的文件進(jìn)行讀/寫操作

      http:顧名思義

      協(xié)議

      協(xié)議抽象定義了一種將內(nèi)存中的數(shù)據(jù)結(jié)構(gòu)映射為有線格式的機(jī)制。換句話說,協(xié)議指定數(shù)據(jù)類型如何使用基礎(chǔ)傳輸來對其自身進(jìn)行編碼/解碼。因此,協(xié)議實(shí)現(xiàn)控制編碼方案,并負(fù)責(zé)(反序列化)。從這個(gè)意義上來說,協(xié)議的一些示例包括JSON,XML,純文本,緊湊二進(jìn)制等。

      這是協(xié)議接口:

      節(jié)儉協(xié)議通過設(shè)計(jì)面向流。不需要任何明確的框架。例如,在開始序列化字符串之前,不必知道字符串的長度或列表中的項(xiàng)目數(shù)。大多數(shù)受Thrift支持的語言可用的一些協(xié)議是:

      二進(jìn)制:非常簡單的二進(jìn)制編碼–字段的長度和類型被編碼為字節(jié),然后是字段的實(shí)際值。

      緊湊:描述于THRIFT-110

      json

      處理器

      處理器封裝了從輸入流讀取數(shù)據(jù)并寫入輸出流的功能。輸入和輸出流由協(xié)議對象表示。處理器界面非常簡單

      特定于服務(wù)的處理器實(shí)現(xiàn)由編譯器生成。處理器本質(zhì)上是從線路讀取數(shù)據(jù)(使用輸入?yún)f(xié)議),將處理委托給處理程序(由用戶實(shí)現(xiàn)),并通過線路寫入響應(yīng)(使用輸出協(xié)議)。

      服務(wù)器

      服務(wù)器將上述所有各種功能匯總在一起:

      創(chuàng)建運(yùn)輸

      創(chuàng)建用于傳輸?shù)妮斎?輸出協(xié)議

      根據(jù)輸入/輸出協(xié)議創(chuàng)建處理器

      等待傳入的連接并將其交給處理器

Apache Thrift(服務(wù)開發(fā)框架) v0.14.1 官方版

普通下載地址:
本地普通下載
本地電信下載
浙江移動(dòng)下載
廣東電信下載

猜你喜歡

国精品产品一区,深夜福利视频一区二区,日韩av自拍,国产一区二区高清
日韩av中文字幕一区二区| 蜜臀av一区二区在线免费观看| 日韩精品1区| 国产精品久久久久久久免费软件| 久久免费高清| 久久久777| 日韩三区在线| 欧美不卡视频| 国产精品嫩草99av在线| 免费不卡中文字幕在线| 激情综合激情| 午夜亚洲精品| 免费人成在线不卡| 免费人成精品欧美精品| 久久五月天小说| 国产精品红桃| 国产偷自视频区视频一区二区| 激情综合亚洲| 视频一区二区欧美| 日韩在线播放一区二区| 婷婷精品在线| 免费一区二区三区在线视频| 成人亚洲一区二区| 激情综合亚洲| 久久激情av| 日韩在线短视频| 99亚洲视频| 国产日韩一区二区三区在线播放| 麻豆精品99| 久久精品高清| 日韩黄色在线观看| 精品一区电影| 午夜一级久久| 中文字幕成在线观看| 久久国产中文字幕| 欧美日韩亚洲一区在线观看| 精品一区二区三区中文字幕| 亚洲综合不卡| 黄色在线网站噜噜噜| 蜜桃视频免费观看一区| 91偷拍一区二区三区精品| 美日韩精品视频| 精品丝袜久久| 在线看片国产福利你懂的| 五月婷婷六月综合| 国产精品片aa在线观看 | 亚洲免费观看| 日本一不卡视频| 日韩av成人高清| www.九色在线| 日韩黄色在线观看| 宅男在线一区| 天堂√8在线中文| 欧美一级一区| 黄页网站一区| 国产激情综合| 亚洲欧美日韩一区在线观看| 精品国产欧美日韩| 日本伊人久久| 亚洲综合色婷婷在线观看| 视频福利一区| 另类欧美日韩国产在线| 婷婷色综合网| 日韩免费高清| 91综合网人人| 久久久久观看| 国产情侣一区在线| 97久久中文字幕| 老司机久久99久久精品播放免费| 三级在线看中文字幕完整版| 国产欧美高清视频在线| 日韩一区二区三区精品| 男人的天堂久久精品| 亚洲国产一区二区在线观看 | 日本成人在线一区| 免费视频国产一区| 久久要要av| 免费精品视频最新在线| 久久在线免费| 欧美a级一区| 99视频+国产日韩欧美| 午夜欧美精品久久久久久久| 欧美亚洲国产激情| 欧美肉体xxxx裸体137大胆| 精品一区二区三区中文字幕在线| 久久精品91| 韩日一区二区| 成人国产精品久久| 久久男人天堂| 欧美性感美女一区二区| а√天堂8资源在线| 蜜桃视频在线网站| 99精品小视频| 在线精品福利| 国产亚洲久久| 91视频一区| 最新日韩欧美| 日韩和欧美的一区| 精品一区二区三区视频在线播放| 国产白浆在线免费观看| 国产高清一区| 青青伊人久久| 精精国产xxxx视频在线野外| av不卡在线看| 卡一精品卡二卡三网站乱码| 福利一区二区免费视频| 91九色精品| 国产欧美久久一区二区三区| 日韩黄色大片| 日韩高清在线不卡| 999视频精品| 欧美一区91| 久久一区二区三区电影| 日本一区二区三区中文字幕| 国产一区丝袜| 日韩一区二区三区精品| 人在线成免费视频| 久久精品99久久久| 午夜欧美视频| 日韩一区电影| 蜜桃av一区二区| 欧美香蕉视频| 国产精品v日韩精品v欧美精品网站| 国产一区亚洲| 快she精品国产999| 久久精品999| 亚洲综合不卡| 日韩不卡免费高清视频| 国产日韩一区| 丝袜美腿成人在线| 国产91精品对白在线播放| 国产精品嫩草影院在线看| 日韩视频免费| 免费福利视频一区二区三区| 青青草国产成人99久久| 久久精品主播| 高清av一区| 麻豆91精品91久久久的内涵| 日本视频在线一区| 奇米777国产一区国产二区| 中文字幕成人| 日韩一二三区在线观看| 亚洲一区二区三区久久久| 国产精品日韩欧美一区| 在线亚洲观看| 噜噜噜躁狠狠躁狠狠精品视频| 日韩专区精品| 日韩视频网站在线观看| 亚洲一级少妇| 少妇久久久久| 性欧美videohd高精| 日韩啪啪电影网| 91精品精品| 日韩视频一区| 久久国产精品久久久久久电车 | 黄色成人在线网址| 亚洲激情精品| 四虎国产精品免费久久| 日韩国产在线不卡视频| 青青草国产成人99久久| 麻豆中文一区二区| 日本а中文在线天堂| 成人精品中文字幕| 欧美午夜精品一区二区三区电影| 91精品高清| 美女高潮久久久| 久久人人99| 亚洲久草在线| 久久精品一区| 亚洲深夜av| 国产aⅴ精品一区二区三区久久 | 中文字幕日本一区二区| 国产精品一区免费在线| 国产在线看片免费视频在线观看| 亚洲午夜久久久久久尤物 | 911精品国产| 久久男女视频| 日韩精品一区二区三区av | 亚洲免费福利一区| 成人午夜在线| 免费成人在线观看| av资源中文在线| 亚洲精品在线国产| 肉色欧美久久久久久久免费看| 日韩专区一卡二卡| 国产v日韩v欧美v| 国精品一区二区| 91欧美日韩| 精品亚洲二区| 欧美在线黄色| 亚洲深深色噜噜狠狠爱网站 | 九九精品调教| 欧美激情五月| 日韩毛片一区| 欧美中文字幕| 欧美99久久| 天堂va蜜桃一区二区三区| 日韩中文字幕麻豆| 伊人久久视频| 国产精品视频一区视频二区|