Docker&k8s微服務(wù)學(xué)習(xí)實(shí)踐(二)

一、下載配置thrift

從Thrift官網(wǎng) http://thrift.apache.org/ 下載thrift,然后進(jìn)行安裝。

筆者是windows系統(tǒng),所以直接下載解壓就有一個(gè)thrift的運(yùn)行文件,我把它加入了環(huán)境變量。

thrift安裝

運(yùn)行thrift --version,如果能正確顯示版本,證明thrift安裝成功。

thrift安裝成功

二、信息服務(wù)開(kāi)發(fā)

由于信息服務(wù)只是一個(gè)很簡(jiǎn)單的公共服務(wù),為了驗(yàn)證thrift的跨語(yǔ)言特性,我打算用python來(lái)開(kāi)發(fā)信息服務(wù),建立好工程,創(chuàng)建好thrift文件,定義好接口方法

定義好thrift接口方法

我們寫一個(gè)簡(jiǎn)單的shell腳本來(lái)自動(dòng)化運(yùn)行thrift生成代碼的命令。

shell腳本

只需要運(yùn)行這個(gè)shell腳本就可以自動(dòng)生成代碼了。先簡(jiǎn)單實(shí)現(xiàn)發(fā)送郵件和發(fā)送短信的接口,啟動(dòng)python thrift service。

啟動(dòng)python thrift service

控制臺(tái)已經(jīng)打印出python thrift service啟動(dòng)輸出。檢查9090端口是否監(jiān)聽(tīng),netstat -na |grep 9090,發(fā)現(xiàn)端口成功監(jiān)聽(tīng)

查看9090端口是否被監(jiān)聽(tīng)

接下來(lái)補(bǔ)全信息服務(wù)的實(shí)現(xiàn),因?yàn)榘l(fā)送短信是需要收費(fèi)的,所以這里對(duì)它只做一個(gè)簡(jiǎn)單打印,主要是用163實(shí)現(xiàn)發(fā)送郵件功能,這里需要一個(gè)授權(quán)碼,申請(qǐng)一個(gè)163郵箱,然后設(shè)置開(kāi)通授權(quán)碼才可使用。

補(bǔ)全信息服務(wù)

接著我們創(chuàng)建一個(gè)java api模塊,然后增加shell腳本,生成java api代碼。

生成java api代碼

接著修改pom文件,加入thrift的依賴。

加入thrift依賴

三、用戶服務(wù)開(kāi)發(fā)

首先創(chuàng)建一個(gè)用戶服務(wù)api的module,然后編寫thrift文件,再編寫腳本生成api代碼。

thrift

接著再創(chuàng)建實(shí)現(xiàn)模塊,由于我們是在user-thrift-service里實(shí)現(xiàn)api,所以pom文件中需要引入api模塊。

pom文件引入api模塊

接著開(kāi)始創(chuàng)建數(shù)據(jù)庫(kù),我是直接用docker運(yùn)行mysql的,在apps文件夾里面有redis,mysql等等中間件。用一個(gè)啟動(dòng)腳本,掛載本地配置文件和數(shù)據(jù)到mysql容器中,然后開(kāi)始創(chuàng)建數(shù)據(jù)庫(kù)。

啟動(dòng)mysql容器腳本

為了方便,我是直接用navicat創(chuàng)建數(shù)據(jù)表。

數(shù)據(jù)庫(kù)表字段

接著開(kāi)始寫mapper代碼,我這里采用的是mybatis。

UserMapper

接著要開(kāi)始構(gòu)建thrift server,這里需要和python的api保持一致,選擇幀傳輸協(xié)議,用非阻塞io,然后啟動(dòng)tsocker server,用spring boot啟動(dòng)項(xiàng)目,項(xiàng)目啟動(dòng)成功。

編寫thrift server

四、用戶EdgeService開(kāi)發(fā)

首先建立edge-service工程,再把依賴引入,因?yàn)閑dge-service對(duì)外是提供rest接口的,所以在pom里面需要引入spring-boot-starter-web.接著創(chuàng)建provider類,獲取client,這樣我們就可以用client調(diào)用user-service提供的服務(wù)了。

serviceProvider

接著開(kāi)始寫controller,對(duì)外提供http接口,首先要驗(yàn)證用戶名和密碼,密碼是md5加密的,接著生成token,token用redis存儲(chǔ),接著返回token。

controller

啟動(dòng)user-thrift-service和user-edge-service,接著啟動(dòng)postman開(kāi)始請(qǐng)求。

請(qǐng)求啟動(dòng)的兩個(gè)服務(wù)

測(cè)試成功!可以看到thrift生成的api是成功的,user-edge-service成功的請(qǐng)求到了user-thrift-service提供的data查詢接口。

具體代碼請(qǐng)到我的github查看:https://github.com/jauhwan/micro-service

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容