共計 1501 個字符,預計需要花費 4 分鐘才能閱讀完成。
這篇文章主要介紹“Python 中 RPC 是什么”,在日常操作中,相信很多人在 Python 中 RPC 是什么問題上存在疑惑,丸趣 TV 小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Python 中 RPC 是什么”的疑惑有所幫助!接下來,請跟著丸趣 TV 小編一起來學習吧!
如今的計算機應用中,單機性能上很難承受住產品的壓力,需要不斷擴充多臺機器來提升整體的性能。同時為了充分利用這些集群里的計算機,需要對其從架構上進行劃分,以提供不同的服務,服務間相互調用完成整個產品的功能。
####RPC 就是為解決服務之間信息交互而發明和存在的
RPC(Remote Procedure Call)——遠程過程調用,它是一種通過網絡從遠程計算機程序上請求服務,而不需要了解底層網絡技術的協議(RPC 的設計思想是力圖使遠程調用中的通訊細節對于使用者透明,調用雙方無需關心網絡通訊的具體實現。因而實現 RPC 要進行一定的封裝)
流程:
調用者(Caller, 也叫客戶端、Client)以本地調用的方式發起調用;
Client stub(客戶端存根,可理解為輔助助手)收到調用后,負責將被調用的方法名、參數等打包編碼成特定格式的能進行網絡傳輸的消息體;
Client stub 將消息體通過網絡發送給對端(服務端)
Server stub(服務端存根,同樣可理解為輔助助手)收到通過網絡接收到消息后按照相應格式進行拆包解碼,獲取方法名和參數;
Server stub 根據方法名和參數進行本地調用;
被調用者(Callee,也叫 Server)本地調用執行后將結果返回給 server stub;
Server stub 將返回值打包編碼成消息,并通過網絡發送給對端(客戶端);
Client stub 收到消息后,進行拆包解碼,返回給 Client;
Client 得到本次 RPC 調用的最終結果。
使用 RPC 方法
聲明 RPC 調用的接口形式 ret = recommend_article(channel_id, user_id) 接口的名字 recommend_article 調用時傳遞的參數 int channel_id , int user_id 接口返回數據 int list [article_id, article_id, ….]
生成 調用的代碼 (包含了 參數轉換為二進制傳輸的方法、網絡傳輸收發的方法) rpc 框架會提供生成代碼的工具 (編譯器) 使用編譯器生成不同語言的代碼 調用方 python – 使用編譯器 根據上面的接口描述,生成 python 代碼 被調用方 java – 使用編譯器 根據上面的接口,生成 java 代碼
需要補充代碼 在被調用的一端 服務端 補充被調用時執行的邏輯函數 在調用的一方,需要在 調用的代碼地方 補充上調用的代碼
常用框架
gRPC(Google)
gRPC 是由 Google 公司開源的高性能 RPC 框架。
gRPC 支持多語言 gRPC 原生使用 C、Java、Go 進行了三種實現,而 C 語言實現的版本進行封裝后又支持 C ++、C#、Node、ObjC、Python、Ruby、PHP 等開發語言
gRPC 支持多平臺 支持的平臺包括:Linux、Android、iOS、MacOS、Windows
gRPC 的消息協議使用 Google 自家開源的 Protocol Buffers 協議機制(proto3)序列化
gRPC 的傳輸使用 HTTP/ 2 標準,支持雙向流和連接多路復用
到此,關于“Python 中 RPC 是什么”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注丸趣 TV 網站,丸趣 TV 小編會繼續努力為大家帶來更多實用的文章!