這篇文章主要介紹“Python中RPC是什么”,在日常操作中,相信很多人在Python中RPC是什么問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Python中RPC是什么”的疑惑有所幫助!接下來,請跟著小編一起來學(xué)習(xí)吧!
創(chuàng)新互聯(lián)公司是少有的成都網(wǎng)站制作、網(wǎng)站設(shè)計、營銷型企業(yè)網(wǎng)站、微信平臺小程序開發(fā)、手機APP,開發(fā)、制作、設(shè)計、友情鏈接、推廣優(yōu)化一站式服務(wù)網(wǎng)絡(luò)公司,于2013年開始,堅持透明化,價格低,無套路經(jīng)營理念。讓網(wǎng)頁驚喜每一位訪客多年來深受用戶好評
如今的計算機應(yīng)用中,單機性能上很難承受住產(chǎn)品的壓力,需要不斷擴充多臺機器來提升整體的性能。同時為了充分利用這些集群里的計算機,需要對其從架構(gòu)上進行劃分,以提供不同的服務(wù),服務(wù)間相互調(diào)用完成整個產(chǎn)品的功能。
####RPC 就是為解決服務(wù)之間信息交互而發(fā)明和存在的
RPC(Remote Procedure Call)——遠(yuǎn)程過程調(diào)用,它是一種通過網(wǎng)絡(luò)從遠(yuǎn)程計算機程序上請求服務(wù),而不需要了解底層網(wǎng)絡(luò)技術(shù)的協(xié)議(RPC的設(shè)計思想是力圖使遠(yuǎn)程調(diào)用中的通訊細(xì)節(jié)對于使用者透明,調(diào)用雙方無需關(guān)心網(wǎng)絡(luò)通訊的具體實現(xiàn)。因而實現(xiàn)RPC要進行一定的封裝)
調(diào)用者(Caller, 也叫客戶端、Client)以本地調(diào)用的方式發(fā)起調(diào)用;
Client stub(客戶端存根,可理解為輔助助手)收到調(diào)用后,負(fù)責(zé)將被調(diào)用的方法名、參數(shù)等打包編碼成特定格式的能進行網(wǎng)絡(luò)傳輸?shù)南Ⅲw;
Client stub將消息體通過網(wǎng)絡(luò)發(fā)送給對端(服務(wù)端)
Server stub(服務(wù)端存根,同樣可理解為輔助助手)收到通過網(wǎng)絡(luò)接收到消息后按照相應(yīng)格式進行拆包解碼,獲取方法名和參數(shù);
Server stub根據(jù)方法名和參數(shù)進行本地調(diào)用;
被調(diào)用者(Callee,也叫Server)本地調(diào)用執(zhí)行后將結(jié)果返回給server stub;
Server stub將返回值打包編碼成消息,并通過網(wǎng)絡(luò)發(fā)送給對端(客戶端);
Client stub收到消息后,進行拆包解碼,返回給Client;
Client得到本次RPC調(diào)用的最終結(jié)果。
使用RPC方法
聲明RPC調(diào)用的接口形式 ret = recommend_article(channel_id, user_id) 接口的名字 recommend_article 調(diào)用時傳遞的參數(shù) int channel_id , int user_id 接口返回數(shù)據(jù) int list [article_id, article_id, ....]
生成 調(diào)用的代碼 (包含了 參數(shù)轉(zhuǎn)換為二進制傳輸?shù)姆椒?、網(wǎng)絡(luò)傳輸收發(fā)的方法) rpc框架會提供生成代碼的工具 (編譯器) 使用編譯器生成不同語言的代碼 調(diào)用方 python -> 使用編譯器 根據(jù)上面的接口描述 ,生成python代碼 被調(diào)用方 java -> 使用編譯器 根據(jù)上面的接口,生成java代碼
需要補充代碼 在被調(diào)用的一端 服務(wù)端 補充被調(diào)用時執(zhí)行的邏輯函數(shù) 在調(diào)用的一方,需要在 調(diào)用的代碼地方 補充上調(diào)用的代碼
常用框架
gRPC(Google)
gRPC是由Google公司開源的高性能RPC框架。
gRPC支持多語言 gRPC原生使用C、Java、Go進行了三種實現(xiàn),而C語言實現(xiàn)的版本進行封裝后又支持C++、C#、Node、ObjC、 Python、Ruby、PHP等開發(fā)語言
gRPC支持多平臺 支持的平臺包括:Linux、Android、iOS、MacOS、Windows
gRPC的消息協(xié)議使用Google自家開源的Protocol Buffers協(xié)議機制(proto3) 序列化
gRPC的傳輸使用HTTP/2標(biāo)準(zhǔn),支持雙向流和連接多路復(fù)用
到此,關(guān)于“Python中RPC是什么”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識,請繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>
本文名稱:Python中RPC是什么
文章來源:http://www.rwnh.cn/article2/pgchic.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)網(wǎng)站制作、響應(yīng)式網(wǎng)站、App開發(fā)、企業(yè)建站、軟件開發(fā)、營銷型網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)