thrift支持多語(yǔ)言的RPC,一直都想深入學(xué)習(xí)了解thrift,最近有空,就上網(wǎng)查了些資料,學(xué)習(xí)了一下,對(duì)它的使用有了一些了解。本篇是寫(xiě)thrift的安裝,使用方法會(huì)另起一篇來(lái)寫(xiě)。
本文使用thrift的版本是0.9.1。
?
1.windows平臺(tái)安裝
直接下載編譯好的exe文件,就可以使用了。
下載鏈接在 這里
新建目錄,C:\Program Files\thrift,把下載好的thrift-0.9.1.exe文件放在里面。把C:\Program Files\thrift添加到windows下面的環(huán)境變量,如下圖
現(xiàn)在使用thrift官網(wǎng)的例子來(lái)試試thrift是否正確安裝。
example.thrift文件里面的內(nèi)容是:
struct UserProfile {
1: i32 uid,
2: string name,
3: string blurb
}
service UserStorage {
void store(1: UserProfile user),
UserProfile retrieve(1: i32 uid)
}
使用命令,thrift-0.9.1 --gen erl example.thrift來(lái)產(chǎn)生erlang的代碼文件。從下圖可以看出,它會(huì)在目錄下面產(chǎn)生一個(gè)gen-erl文件夾,里面就是我們需要的代碼文件了。
大家可以試一下其他語(yǔ)言,例如go,js,php,cpp。
到這里,windows下面的thrift安裝就完成了。
?
2.debian/ubuntu下面源碼編譯安裝thrift
源碼編譯安裝就是麻煩一點(diǎn),首先要安裝thrift的依賴包。
主要參考 Debian or Ubuntu setup , 以及 Building from source
安裝依賴:
apt-get install libboost-dev libboost-test-dev libboost-program-options-dev libevent-dev automake libtool flex bison pkg-config g++ libssl-dev
在ubuntu 13.04或者更高版本可以使用下面命令來(lái)安裝所有依賴包:
apt-get build-dep thrift-compiler -y
安裝erlang包,編譯需要啟用erlang支持:
wget https: // packages.erlang-solutions.com/erlang-solutions_1.0_all.deb dpkg -i erlang- solutions_1.0_all.deb apt - get update apt -get install erlang
在debian平臺(tái)可能會(huì)報(bào)錯(cuò):
證書(shū)所有者與主機(jī)名 “packages.erlang-solutions.com” 不符
可以使用下面命令來(lái)下載
wget --no-check-certificate -c https: // packages.erlang-solutions.com/erlang-solutions_1.0_all.deb
在安裝的過(guò)程中,輸入wheezy。
erlang-solutions的erlang版本版本是最新的,而且可以根據(jù)你的linux系統(tǒng)來(lái)設(shè)置軟件源,更新erlang包方便很多。
使用git下載thrift源碼
git clone -b 0.9 . 1 https: // github.com/apache/thrift thrift-0.9.1
特意使用git下載,而不是直接下載apache打包好的tar包,是因?yàn)閍pache在打源碼包的時(shí)候,出現(xiàn)了一些其他問(wèn)題。 [O]Ubuntu 13.10 thrift-0.9.1 安裝 ?介紹到這個(gè)問(wèn)題。我自己也是遇到了這個(gè)坑,才會(huì)使用這個(gè)方法下載源碼。
./bootstrap. sh . /configure --with- cpp =no --with-python=no
make
make check
make install
上面configure不啟動(dòng)cpp以及python支持,原因有2個(gè):
原因1,在make check段,總是報(bào)錯(cuò),通不過(guò)測(cè)試。我發(fā)現(xiàn)部分原因是有些測(cè)試代碼缺失,沒(méi)完成,例如變量沒(méi)填上。對(duì)于沒(méi)有通過(guò)測(cè)試用例的代碼,我自己總是持懷疑態(tài)度。
原因2,我自己沒(méi)使用cpp以及python。
當(dāng)然,如果你不關(guān)注測(cè)試用例,你可以直接make && make install
編譯安裝完畢后,在/usr/lib/erlang/lib/thrift-0.9.1里面就是thrift對(duì)erlang語(yǔ)言的代碼支持包。里面有thrift的erlang代碼,大家可以看看。
使用thrift --gen erl example.thrift就可以產(chǎn)生我們需要的代碼文件。
?
3.centos安裝thrift
在centos源碼安裝thrift 0.9.1版本麻煩,我自己是沒(méi)有成功。
在 CentOS setup 介紹了centos的編譯方法,我照著做,但是autoconf的版本不給力,比thrift要求的版本要低??蓱z我使用的是centos 6.5,是最新的centos版本了,這可咋整?
在經(jīng)過(guò)編譯安裝最新版autoconf折騰后,編譯thrift還是報(bào)錯(cuò)。我放棄編譯了,改為直接使用其他人的二進(jìn)制包。
centos的rpm包就是多,我搜索了n久,終于發(fā)現(xiàn)了下面這個(gè)鏈接,里面就有編譯好的thrift包。
http://download.opensuse.org/repositories/home:/jblunck:/messaging/CentOS_CentOS-6/
好,下載repo文件,直接下載安裝thrift
cd /etc/ yum .repos.d/ wget -c http: // download.opensuse.org/repositories/home:/jblunck:/messaging/CentOS_CentOS-6/home:jblunck:messaging.repo yum makecache yum install thrift
安裝過(guò)程中會(huì)要求你確認(rèn)是否安裝,這是因?yàn)榘鼪](méi)有簽名,沒(méi)有關(guān)系,我直接回答y。
使用這種方法安裝的thrift跟windows下安裝的thrift差不多,只能產(chǎn)生多語(yǔ)言的代碼文件,但是缺少里面的語(yǔ)言的驅(qū)動(dòng)代碼文件。
?
至此,thrift的安裝步驟完成,下篇會(huì)介紹如何根據(jù)thrift來(lái)寫(xiě)一個(gè)具體的erlang項(xiàng)目。
?
?
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元
