日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

thriftpy2使用与流程

發布時間:2024/7/5 编程问答 181 豆豆
生活随笔 收集整理的這篇文章主要介紹了 thriftpy2使用与流程 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

首先,最近公司對原來的項目重構,用thriftpy框架(餓了么對thrift的python實現),原來的thriftpy廢棄了,現在基本都用的是thriftpy2。剛剛接觸到RPC方面的東西,網上關于thriftpy2的資料也比較少,就想寫自己的第一篇博客吧。

python搞微服務,是最近的趨勢,但相關的資料很少。我會大概梳理下大概的流程,具體的百度下就ok了。

先講RPC,這是遠程功能調用,就是我們原來是一個整體的項目,現在需要拆分為一個個服務。RPC框架就是編程人員在同一臺機器的不同進程之間,或者同的機器之間,進行遠程調用代碼的工具。這樣我們就不用去管底層的具體實現,只需要搞好我們原來的業務邏輯處理。

然后就是我們的thrift框架,主要用于各個服務之間的RPC通信。支持跨語言,比如客戶端用python寫,服務端可以用java來寫,這都取決于開發者。

thrift的實現步驟

通過IDL(接口定義語言) ==> 來定義 RPC(遠程過程調用)的接口和數據類型 ==> thrift編譯器生成不同語言的代碼 ==> 負責RPC協議層和傳輸層的實現

thrift框架通過定義IDL文件,來來關聯客戶端和服務端

IDL文件中定義的內容,定義我們要運行的服務,需要的變量等

指定目標語言 namespace language xxx(文件夾目錄)定義變量 const 定義結構體 struct xxx{}定義服務 service xxx{}

在thrift框架中,我們需要執行?thrift --gen <language> <Thrift filename>,幫我們生成相應的thrift 服務需要的依賴文件

構建服務端代碼,客戶端代碼,具體的我就不說了,官方也有給出例子。

thrift框架的github地址

https://github.com/apache/thrift

?

thriftpy2框架是以pythonic方式實現的,不需要通過thrift文件,生成SDK,只需要動態導入thrift文件即可

https://github.com/Thriftpy/thriftpy2

安裝也很簡單,不過微服務基本都是用docker容器來運行服務,通過Dockerfile安裝在容器內即可

pip install thriftpy2

thriftpy2的基本流程

我們需要定義thrift文件,來描述服務接口

定義客戶端代碼

定義服務端代碼

先開啟服務,就可以執行客戶端
如果需要同時提供多個服務,就需要建立多個.thrift文件來實現

?

thriftpy2中服務端和客戶端都需要調用thriftpy2.load方法,對thrift文件進行解析,會在內存中構建相應的module

1.thriftpy2構建服務端

調用thriftpy.load方法對thrift文件進行解析,在內存中構建對應的module
調用make_server將構建的module和完成具體業務功能的class綁定,同時完成傳輸層和協議層的設置,生成thrift服務器端
調用server.serve方法啟動服務器

2.thriftpy2構建客戶端接口

調用thriftpy.load方法對thrift文件進行解析,在內存中構建對應的module
調用make_client綁定上一步構建的module,同時完成傳輸層和協議層的設置,生成Thirft客戶端
根據生成的客戶端調用響應的接口

?

由于微服務基本都會用docker來運行,用docker來搭建python微服務,大家可以參考下https://blog.csdn.net/qq_35394891/article/details/84144936

簡單說下吧,通過Dockerfile,來幫我們快速生成容器,使用的python版本,運行的命令以及我們需要安裝的包等,生成對應的容器

這樣我們就構建好容器了

通過gunicorn來幫助我們,運行服務

?

文筆方面,還有布局應該都比較差,將就看吧,有什么錯誤,還望指出,謝謝。

參考文檔

https://blog.csdn.net/yzj225/article/details/76855991

https://blog.csdn.net/qq_35394891/article/details/84144936

https://blog.csdn.net/zkp_java/article/details/81879577

轉載于:https://www.cnblogs.com/hongtrands/p/11148840.html

總結

以上是生活随笔為你收集整理的thriftpy2使用与流程的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。