公司的一些平臺(tái)服務(wù)框架底層封裝了thrift提供服務(wù),最近項(xiàng)目不是很緊,于是研究了一下,剛剛?cè)腴T,理解得不深,寫這篇博文來整理一下思路.

什么是thrift?

  簡單來說,是Facebook公布的一款開源跨語言的RPC框架.

  那么問題來了.

  什么是RPC框架?

    RPC全稱為Remote Procedure Call,意為遠(yuǎn)程過程調(diào)用.

    假設(shè)有兩臺(tái)服務(wù)器A,B.A服務(wù)器上部署著一個(gè)應(yīng)用a,B服務(wù)器上部署著一個(gè)應(yīng)用b,現(xiàn)在a希望能夠調(diào)用b應(yīng)用的某個(gè)函數(shù)(方法),但是二者不在同一個(gè)進(jìn)程內(nèi),不能直接調(diào)用,就需要通過網(wǎng)絡(luò)傳輸,在AB服務(wù)器之間建一條網(wǎng)絡(luò)傳輸通道,a把參數(shù)傳過去,b接收到參數(shù)調(diào)用自己的方法,得到結(jié)果,再通過網(wǎng)絡(luò)傳回給a,簡單講就是A通過網(wǎng)絡(luò)來調(diào)用B的過程.這個(gè)過程要涉及的東西很多,比如多線程,Socket,序列化反序列化,網(wǎng)絡(luò)I/O,很復(fù)雜,于是牛掰的程序員把這些封裝起來做成一套框架,供大家使用,就是RPC框架.       

  thrift的跨語言特型

    thrift通過一個(gè)中間語言IDL(接口定義語言)來定義RPC的數(shù)據(jù)類型和接口,這些內(nèi)容寫在以.thrift結(jié)尾的文件中,然后通過特殊的編譯器來生成不同語言的代碼,以滿足不同需要的開發(fā)者,比如java開發(fā)者,就可以生成java代碼,c++開發(fā)者可以生成c++代碼,生成的代碼中不但包含目標(biāo)語言的接口定義,方法,數(shù)據(jù)類型,還包含有RPC協(xié)議層和傳輸層的實(shí)現(xiàn)代碼.

延伸閱讀

學(xué)習(xí)是年輕人改變自己的最好方式-Java培訓(xùn),做最負(fù)責(zé)任的教育,學(xué)習(xí)改變命運(yùn),軟件學(xué)習(xí),再就業(yè),大學(xué)生如何就業(yè),幫大學(xué)生找到好工作,lphotoshop培訓(xùn),電腦培訓(xùn),電腦維修培訓(xùn),移動(dòng)軟件開發(fā)培訓(xùn),網(wǎng)站設(shè)計(jì)培訓(xùn),網(wǎng)站建設(shè)培訓(xùn)學(xué)習(xí)是年輕人改變自己的最好方式