
Apache Thrift
Apache Thrift安裝教程
Apache Thrift是一款服務(wù)開(kāi)發(fā)框架,用戶可以在軟件上使用多種語(yǔ)言開(kāi)發(fā)你的服務(wù)項(xiàng)目,結(jié)合編輯器就可以輸入代碼內(nèi)容,讓用戶可以設(shè)計(jì)各種編程語(yǔ)言支持的客戶端程序和服務(wù)端程序。

功能介紹
Apache Thrift功能:
界面描述語(yǔ)言-一切都在IDL文件中指定,可以從該文件生成多種語(yǔ)言的綁定。
語(yǔ)言綁定-許多語(yǔ)言和環(huán)境都支持Thrift
C++
C#
Cocoa
D
Delphi
Erlang
Haskell
Java
OCaml
Perl
PHP
Python
Ruby
Smalltalk
~名稱空間-每個(gè)Thrift文件位于其自己的名稱空間中,允許您在多個(gè)Thrift文件中使用相同的標(biāo)識(shí)符
語(yǔ)言名稱空間-每個(gè)Thrift文件,您可以指定每種編程語(yǔ)言應(yīng)使用的名稱空間
基本類型-Thrift有少量的基本類型。
常量和枚舉-可以為常量值分配邏輯名稱
結(jié)構(gòu)-使用結(jié)構(gòu)對(duì)相關(guān)數(shù)據(jù)進(jìn)行分組。結(jié)構(gòu)可以具有任何類型的字段。
稀疏結(jié)構(gòu)-尚未設(shè)置的可選基本字段和為空的參考字段將不會(huì)通過(guò)電線發(fā)送
結(jié)構(gòu)演化-通過(guò)使用字段的整數(shù)標(biāo)識(shí)符來(lái)處理字段的添加和刪除,而不會(huì)破壞現(xiàn)有的客戶端
容器-您可以使用任何類型的集,列表和映射:基本類型,結(jié)構(gòu)和其他容器。
類型定義-可以給任何類型一個(gè)更好地描述它的名稱
服務(wù)-服務(wù)是一組功能
服務(wù)繼承-子服務(wù)實(shí)現(xiàn)其基本服務(wù)的所有功能,并且可以具有其他功能
異步調(diào)用-可以異步調(diào)用不返回結(jié)果的函數(shù),因此在服務(wù)器完成對(duì)請(qǐng)求的處理之前,不會(huì)阻塞客戶端。服務(wù)器可以并行/無(wú)序執(zhí)行同一客戶端的異步調(diào)用
異常-如果發(fā)生錯(cuò)誤,則函數(shù)可以引發(fā)標(biāo)準(zhǔn)或用戶定義的異常
循環(huán)結(jié)構(gòu)-從0.9.2版開(kāi)始,Thrift支持包含自身的結(jié)構(gòu)或以后要聲明的其他結(jié)構(gòu)。
非功能
Apache Thrift不支持以下功能:
struct繼承-改用struct組合
多態(tài)-由于沒(méi)有繼承,因此也不支持多態(tài)
重載-服務(wù)中的所有方法都必須唯一地命名
異構(gòu)容器-容器中的所有物品都必須是同一類型
空返回-無(wú)法直接從函數(shù)返回空。使用包裝器結(jié)構(gòu)或標(biāo)記值代替
軟件特色
Apache Thrift是一個(gè)軟件項(xiàng)目,涉及多種編程語(yǔ)言和用例。我們的目標(biāo)是使跨語(yǔ)言的可靠,高性能的通信和數(shù)據(jù)序列化盡可能高效和無(wú)縫。Thrift于2007年4月開(kāi)源,并于2008年5月進(jìn)入Apache孵化器。Thrift于2010年10月成為Apache TLP。
Apache Thrift旨在體現(xiàn)以下價(jià)值觀:
簡(jiǎn)單性 Thrift代碼簡(jiǎn)單易用,沒(méi)有不必要的依賴關(guān)系。
透明 節(jié)儉符合所有語(yǔ)言中最常見(jiàn)的習(xí)慣用法。
一致性 生態(tài)位,特定于語(yǔ)言的功能屬于擴(kuò)展,而不是核心庫(kù)。
性能 力爭(zhēng)性能第一,優(yōu)雅第二。
軟件優(yōu)勢(shì)
1、節(jié)儉的類型
Thrift類型系統(tǒng)旨在使程序員無(wú)論使用哪種編程語(yǔ)言,都可以盡可能多地使用本機(jī)類型。此信息基于并且取代了Thrift白皮書(shū)中的信息。的節(jié)儉IDL提供了用于產(chǎn)生針對(duì)每個(gè)目標(biāo)語(yǔ)言代碼的類型的描述。
2、基本類型
選擇基本類型的目的是簡(jiǎn)化和清楚而不是數(shù)量眾多,重點(diǎn)放在所有編程語(yǔ)言中可用的鍵類型上。
bool:布爾值(對(duì)或錯(cuò))
字節(jié):8位有符號(hào)整數(shù)
i16:16位有符號(hào)整數(shù)
i32:32位有符號(hào)整數(shù)
i64:64位有符號(hào)整數(shù)
double:64位浮點(diǎn)數(shù)
字符串:使用UTF-8編碼編碼的文本字符串
3、結(jié)構(gòu)
節(jié)儉結(jié)構(gòu)定義了一個(gè)公共對(duì)象–它們本質(zhì)上等同于OOP語(yǔ)言中的類,但沒(méi)有繼承。一個(gè)結(jié)構(gòu)具有一組強(qiáng)類型字段,每個(gè)字段都有一個(gè)唯一的名稱標(biāo)識(shí)符。字段可能具有Thrift IDL中描述的各種注釋(數(shù)字字段ID,可選的默認(rèn)值等) 。
4、容器
節(jié)儉容器是強(qiáng)類型的容器,它們映射到大多數(shù)編程語(yǔ)言中的常用容器和常用容器類型。
共有三種容器類型:
列表:元素的有序列表。轉(zhuǎn)換為STL向量,Java ArrayList,腳本語(yǔ)言的本機(jī)數(shù)組等。
放:無(wú)序的唯一元素集。轉(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)語(yǔ)言替換自定義類型。
下載地址
-
- 通用安全下載
-
- 移動(dòng)安全下載
-
- 聯(lián)通安全下載
-
- 電信安全下載
-
- 移動(dòng)網(wǎng)絡(luò)下載
-
- 聯(lián)通網(wǎng)絡(luò)下載
-
- 電信網(wǎng)絡(luò)下載
-
- 通用網(wǎng)絡(luò)下載