成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Thrift架構(gòu)

wall2flower / 1228人閱讀

摘要:服務(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)用組件,客戶端代理組件等等

Thrift架構(gòu)



各部分解釋可看圖中英文,釋義補(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ā)起請求

Thrift組件

TProtocol 協(xié)議和編解碼組件
TTransport IO傳輸組件
TProcessor 服務(wù)調(diào)用處理組件
TServer,服務(wù)器網(wǎng)絡(luò)IO
IDL 服務(wù)描述組件,負(fù)責(zé)生產(chǎn)跨平臺客戶端

IDL 服務(wù)描述語言 IDL語法

namespace 定義包名
struct 定義服務(wù)接口的參數(shù),返回值使用到的類結(jié)構(gòu)。如果接口的參數(shù)都是基本類型,則不需要定義struct
service 定義接口

支持的數(shù)據(jù)類型
bool 布爾型
byte 8位整數(shù)
i16  16位整數(shù)
i32  32位整數(shù)
i64  64位整數(shù)
double 雙精度浮點(diǎn)數(shù)
string 字符串
binary 字節(jié)數(shù)組
list List集合,必須指明泛型
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

相關(guān)文章

  • Thrift

    摘要:遠(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ù),但它只限...

    JerryC 評論0 收藏0
  • 架構(gòu)小試之IDL

    摘要:不合理的選型在后續(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的介紹也放在這里呢?...

    番茄西紅柿 評論0 收藏2637
  • php+nodeJs+thrift協(xié)議,實現(xiàn)zookeeper節(jié)點(diǎn)數(shù)據(jù)自動發(fā)現(xiàn)

    摘要:可以在主進(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)聽 一.問題背景...

    MingjunYang 評論0 收藏0
  • 微服務(wù)實戰(zhàn):從架構(gòu)到發(fā)布(一)

    摘要:微服務(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ǔ)概念,...

    libin19890520 評論0 收藏0
  • 微服務(wù)實戰(zhàn):從架構(gòu)到發(fā)布(一)

    摘要:微服務(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ǔ)概念,...

    HtmlCssJs 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<