Thrift編譯 Ubuntu 16.04

一、Thrift簡介

Apache Thrift軟件框架(用於可擴展的跨語言服務開發)將軟件堆棧與代碼生成引擎結合在一起,可以構建C++,Java,Python,PHP,Ruby,Erlang,Perl,Haskell,C#,JavaScript,Node.js,Smalltalk,OCaml和Delphi等語言。

入門

  • 下載Apache Thrift
    首先,下載 Thrift的副本。

  • 構建並安裝Apache Thrift編譯器
    然後,您將需要構建 Apache Thrift編譯器並進行安裝。有關此步驟的任何幫助,請參見安裝Thrift指南。

  • 編寫.thrift文件
    安裝Thrift編譯器後,您將需要創建一個Thrift文件。該文件是由節儉類型和服務組成的接口定義。您在此文件中定義的服務由服務器實現,並由任何客戶端調用。Thrift編譯器用於將Thrift文件生成爲源代碼,供不同的客戶端庫和所編寫的服務器使用。從Thrift文件運行生成源
    thrift --gen <language> <Thrift filename>
    可以在此處找到用於所有客戶端和服務器教程的示例tutorial.thrift文件。

Apache Thrift允許您在簡單的定義文件中定義數據類型和服務接口。將該文件作爲輸入,編譯器將生成用於輕鬆構建跨編程語言無縫通信的RPC客戶端和服務器的代碼。您無需編寫大量的樣板代碼來序列化和傳輸對象並調用遠程方法,而是可以開始工作。


可以參考簡書《Thrift》:https://www.jianshu.com/p/4723ce380b0e

Thrift框架實現方式是RPC實現方式的一種。
在這裏插入圖片描述
假設有兩臺服務器A,B.A服務器上部署着一個應用a,B服務器上部署着一個應用b,現在a希望能夠調用b應用的某個函數(方法),但是二者不在同一個進程內,不能直接調用,就需要通過網絡傳輸,在AB服務器之間建一條網絡傳輸通道,a把參數傳過去,b接收到參數調用自己的方法得到結果,再通過網絡傳回給a。

簡單講就是A通過網絡來調用B的過程,這個過程要涉及的東西很多,比如多線程、Socket、序列化反序列化、網絡I/O,很複雜。於是牛掰的程序員把這些封裝起來做成一套框架供大家使用,就是RPC框架。

二、編譯安裝

官網下載:
http://thrift.apache.org/

編譯:
可參考官網:http://thrift.apache.org/docs/BuildingFromSource
1. 因爲我編譯的時候會自動鏈接goopenssl,所以需要disable這兩項。
2. thrift會依賴anaconda3裏的openssl-1.0.0報依賴問題,就算使用--disable-openssl也沒法禁用,最後是重裝anaconda解決的。

# 依賴
sudo apt install automake libboost1.58-dev byacc flex bison
# 編譯
./bootstrap.sh
./configure --prefix=/opt/shtf/sas/thrift --disable-openssl --without-go
make -j12
# 安裝
sudo make install

三、使用實例

待寫。。。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章