摘要:服務(wù)器端使用它來做頂層接口,編寫實現(xiàn)類。會自動生成同步調(diào)用和異步調(diào)用的兩個接口。方法參數(shù)的封裝類,以方法名命名方法返回值的封裝類,以方法名命名參考個人博客
基本概念
輕量級、跨語言的RPC框架
功能特點(diǎn):
基于IDL(接口描述語言)生成跨語言的RPC clients and servers,支持超過20種語言
支持二進(jìn)制的高性能的編解碼框架
支持NIO的底層通信
相對簡單的服務(wù)調(diào)用模型
Thrift架構(gòu)在介紹Thrift架構(gòu)前,先了解下一般RPC框架的組成結(jié)構(gòu)
RPC組成結(jié)構(gòu)
包括服務(wù)器端發(fā)布和調(diào)用處理組件,網(wǎng)絡(luò)IO組件,協(xié)議編解碼組件,客戶端調(diào)用組件,客戶端代理組件等等
各部分解釋可看圖中英文,釋義補(bǔ)充:
1、用戶自定義類型序列化方式將在通過IDL生成的代碼中實現(xiàn),實際也是根據(jù)struct中的各個field調(diào)用TProtocol的基礎(chǔ)類型序列化實現(xiàn)
2、RPC stub中已經(jīng)提供了Service Client,其作用是構(gòu)造Thrift調(diào)用參數(shù),發(fā)起調(diào)用,解析結(jié)果;而白色部分需用戶自己寫的Client是實例化TProtocol、TTransport組件,設(shè)置業(yè)務(wù)參數(shù),通過調(diào)用Service Client發(fā)起請求
TProtocol 協(xié)議和編解碼組件
TTransport IO傳輸組件
TProcessor 服務(wù)調(diào)用處理組件
TServer,服務(wù)器網(wǎng)絡(luò)IO
IDL 服務(wù)描述組件,負(fù)責(zé)生產(chǎn)跨平臺客戶端
namespace 定義包名
struct 定義服務(wù)接口的參數(shù),返回值使用到的類結(jié)構(gòu)。如果接口的參數(shù)都是基本類型,則不需要定義struct
service 定義接口
bool 布爾型 byte 8位整數(shù) i16 16位整數(shù) i32 32位整數(shù) i64 64位整數(shù) double 雙精度浮點(diǎn)數(shù) string 字符串 binary 字節(jié)數(shù)組 listList集合,必須指明泛型 map Map類型,必須指明泛型 set Set集合,必須指明泛型
生成的類包括5部分
接口類型,默認(rèn)名稱都是Iface。這個接口類型被服務(wù)器和客戶端共同使用。服務(wù)器端使用它來做頂層接口,編寫實現(xiàn)類??蛻舳舜a使用它作為生成代理的服務(wù)接口。會自動生成同步調(diào)用和異步調(diào)用的兩個接口。
客戶端類型,一個同步調(diào)用的客戶端Client,一個異步調(diào)用的客戶端AsyncClient
Processor,用來支持方法調(diào)用,每個服務(wù)的實現(xiàn)類都要使用Processor來注冊,這樣最后服務(wù)器端調(diào)用接口實現(xiàn)時能定位到具體的實現(xiàn)類。
方法參數(shù)的封裝類,以"方法名_args"命名
方法返回值的封裝類,以"方法名_result"命名
http://blog.csdn.net/iter_zc/...
個人博客:https://my.oschina.net/hebaod...
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/71166.html
摘要:遠(yuǎn)程調(diào)用服務(wù)調(diào)用遠(yuǎn)端的服務(wù)的就像直接在本地調(diào)用本質(zhì)上來說是一種服務(wù)的是一種服務(wù)但它只限于與語言之間的調(diào)用提供了跨語言的服務(wù)調(diào)用服務(wù)的組成部件服務(wù)本質(zhì)上是一種架構(gòu)服務(wù)所以在編寫一個組件時需要編寫端端還要編寫傳輸?shù)膮f(xié)議框架主要是實現(xiàn)這三種部件的 thrift rpc(遠(yuǎn)程調(diào)用)服務(wù):調(diào)用遠(yuǎn)端的服務(wù)的就像直接在本地調(diào)用.本質(zhì)上來說是一種c/s服務(wù). Java的RMI是一種rpc服務(wù),但它只限...
摘要:不合理的選型在后續(xù)維護(hù)上會帶來不小的麻煩。因此一般公司會將所有服務(wù)的文件統(tǒng)一維護(hù)。生成的數(shù)據(jù)結(jié)構(gòu)一般均支持序列化和反序列化,并且跨端跨語言。只支持,和數(shù)值三種結(jié)構(gòu),和支持相互嵌套,標(biāo)準(zhǔn)的的數(shù)值僅有這三種。只有大約的大小。本文轉(zhuǎn)載自我自己的博客,感興趣的老爺們可以關(guān)注~:https://www.miaoerduo.com/2021/11/16/arch-idl/為什么IDL的介紹也放在這里呢?...
摘要:可以在主進(jìn)程中拋出一個子進(jìn)程,子進(jìn)程中實現(xiàn)的自動發(fā)現(xiàn),子進(jìn)程偵察到節(jié)點(diǎn)數(shù)據(jù)變化時,主動通知主進(jìn)程。架構(gòu)的整體思路是子進(jìn)程實現(xiàn)的自動發(fā)現(xiàn),主進(jìn)程維護(hù)一個節(jié)點(diǎn)數(shù)據(jù)的共享變量,其他服務(wù)要想使用節(jié)點(diǎn)數(shù)據(jù)時,從主進(jìn)程中獲取。 php是當(dāng)下最流行的web服務(wù)器端語言,zookeeper是大型分布式協(xié)同工具,本文在這里介紹一種架構(gòu)實現(xiàn)php服務(wù)器對于zookeeper數(shù)據(jù)變化的自動監(jiān)聽 一.問題背景...
摘要:微服務(wù)集成服務(wù)間通信微服務(wù)架構(gòu)下,應(yīng)用的服務(wù)直接相互獨(dú)立。微服務(wù)架構(gòu)傾向于降低中心消息總線類似于的依賴,將業(yè)務(wù)邏輯分布在每個具體的服務(wù)終端。 引言:微服務(wù)是當(dāng)前軟件架構(gòu)領(lǐng)域非常熱門的詞匯,能找到很多關(guān)于微服務(wù)的定義、準(zhǔn)則,以及如何從微服務(wù)中獲益的文章,在企業(yè)的實踐中去應(yīng)用微服務(wù)的資源卻很少。本篇文章中,會介紹微服務(wù)架構(gòu)(Microservices Architecture)的基礎(chǔ)概念,...
摘要:微服務(wù)集成服務(wù)間通信微服務(wù)架構(gòu)下,應(yīng)用的服務(wù)直接相互獨(dú)立。微服務(wù)架構(gòu)傾向于降低中心消息總線類似于的依賴,將業(yè)務(wù)邏輯分布在每個具體的服務(wù)終端。 引言:微服務(wù)是當(dāng)前軟件架構(gòu)領(lǐng)域非常熱門的詞匯,能找到很多關(guān)于微服務(wù)的定義、準(zhǔn)則,以及如何從微服務(wù)中獲益的文章,在企業(yè)的實踐中去應(yīng)用微服務(wù)的資源卻很少。本篇文章中,會介紹微服務(wù)架構(gòu)(Microservices Architecture)的基礎(chǔ)概念,...
閱讀 1903·2021-11-22 15:25
閱讀 1263·2021-11-19 09:40
閱讀 1874·2021-09-27 13:57
閱讀 1006·2021-09-22 15:10
閱讀 982·2021-08-16 11:01
閱讀 2981·2021-07-23 17:51
閱讀 778·2019-08-30 15:55
閱讀 830·2019-08-30 13:58