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ù)開發(fā)

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

定義好thrift接口方法

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

shell腳本

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

啟動python thrift service

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

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

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

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

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

生成java api代碼

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

加入thrift依賴

三、用戶服務(wù)開發(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模塊

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

啟動mysql容器腳本

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

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

接著開始寫mapper代碼,我這里采用的是mybatis。

UserMapper

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

編寫thrift server

四、用戶EdgeService開發(fā)

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

serviceProvider

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

controller

啟動user-thrift-service和user-edge-service,接著啟動postman開始請求。

請求啟動的兩個(gè)服務(wù)

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

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

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

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

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