Apache Thrift是一款服務開發框架,用戶可以在軟件上使用多種語言開發你的服務項目,結合編輯器就可以輸入代碼內容,讓用戶可以設計各種編程語言支持的客戶端程序和服務端程序。
Apache Thrift功能:
界面描述語言-一切都在IDL文件中指定,可以從該文件生成多種語言的綁定。
語言綁定-許多語言和環境都支持Thrift
C++
C#
Cocoa
D
Delphi
Erlang
Haskell
Java
OCaml
Perl
PHP
Python
Ruby
Smalltalk
~名稱空間-每個Thrift文件位于其自己的名稱空間中,允許您在多個Thrift文件中使用相同的標識符
語言名稱空間-每個Thrift文件,您可以指定每種編程語言應使用的名稱空間
基本類型-Thrift有少量的基本類型。
常量和枚舉-可以為常量值分配邏輯名稱
結構-使用結構對相關數據進行分組。結構可以具有任何類型的字段。
稀疏結構-尚未設置的可選基本字段和為空的參考字段將不會通過電線發送
結構演化-通過使用字段的整數標識符來處理字段的添加和刪除,而不會破壞現有的客戶端
容器-您可以使用任何類型的集,列表和映射:基本類型,結構和其他容器。
類型定義-可以給任何類型一個更好地描述它的名稱
服務-服務是一組功能
服務繼承-子服務實現其基本服務的所有功能,并且可以具有其他功能
異步調用-可以異步調用不返回結果的函數,因此在服務器完成對請求的處理之前,不會阻塞客戶端。服務器可以并行/無序執行同一客戶端的異步調用
異常-如果發生錯誤,則函數可以引發標準或用戶定義的異常
循環結構-從0.9.2版開始,Thrift支持包含自身的結構或以后要聲明的其他結構。
非功能
Apache Thrift不支持以下功能:
struct繼承-改用struct組合
多態-由于沒有繼承,因此也不支持多態
重載-服務中的所有方法都必須唯一地命名
異構容器-容器中的所有物品都必須是同一類型
空返回-無法直接從函數返回空。使用包裝器結構或標記值代替
Apache Thrift是一個軟件項目,涉及多種編程語言和用例。我們的目標是使跨語言的可靠,高性能的通信和數據序列化盡可能高效和無縫。Thrift于2007年4月開源,并于2008年5月進入Apache孵化器。Thrift于2010年10月成為Apache TLP。
Apache Thrift旨在體現以下價值觀:
簡單性 Thrift代碼簡單易用,沒有不必要的依賴關系。
透明 節儉符合所有語言中最常見的習慣用法。
一致性 生態位,特定于語言的功能屬于擴展,而不是核心庫。
性能 力爭性能第一,優雅第二。
1、節儉的類型
Thrift類型系統旨在使程序員無論使用哪種編程語言,都可以盡可能多地使用本機類型。此信息基于并且取代了Thrift白皮書中的信息。的節儉IDL提供了用于產生針對每個目標語言代碼的類型的描述。
2、基本類型
選擇基本類型的目的是簡化和清楚而不是數量眾多,重點放在所有編程語言中可用的鍵類型上。
bool:布爾值(對或錯)
字節:8位有符號整數
i16:16位有符號整數
i32:32位有符號整數
i64:64位有符號整數
double:64位浮點數
字符串:使用UTF-8編碼編碼的文本字符串
3、結構
節儉結構定義了一個公共對象–它們本質上等同于OOP語言中的類,但沒有繼承。一個結構具有一組強類型字段,每個字段都有一個唯一的名稱標識符。字段可能具有Thrift IDL中描述的各種注釋(數字字段ID,可選的默認值等) 。
4、容器
節儉容器是強類型的容器,它們映射到大多數編程語言中的常用容器和常用容器類型。
共有三種容器類型:
列表:元素的有序列表。轉換為STL向量,Java ArrayList,腳本語言的本機數組等。
放:無序的唯一元素集。轉換為STL集,Java HashSet,Python中的集等。注意:PHP不支持集,因此與List相似。
map :嚴格唯一的鍵到值的映射。轉換為STL映射,Java HashMap,PHP關聯數組,Python / Ruby字典等。盡管提供了默認值,但類型映射未明確固定。添加了自定義代碼生成器指令,以允許以各種目標語言替換自定義類型。
騰訊視頻官方版 | 45.34MB
愛奇藝視頻官方正式版 | 35.10MB
暴風影音最新版下載 | 50.3MB
酷狗音樂2022下載 | 37MB