遠端呼叫框架RPC

2021-10-19 18:36:12 字數 835 閱讀 2762

rpc就是:遠端呼叫框架(remote procedure call)

遠端呼叫意思就是:被呼叫方法的具體實現不在程式執行本地,而是在別的某個遠端地方。

比如 a (client) 呼叫 b (server) 提供的remoteadd方法:

首先a與b之間建立乙個tcp連線;

然後a把需要呼叫的方法名(這裡是remoteadd)以及方法引數(10, 20)序列化成位元組流傳送出去;

b接受a傳送過來的位元組流,然後反序列化得到目標方法名,方法引數,接著執行相應的方法呼叫(可能是localadd)並把結果30返回;

a接受遠端呼叫結果,輸出30。

rpc框架就是把我剛才說的這幾點些細節給封裝起來,給使用者暴露簡單友好的api使用。

使用自定義的tcp協議,可以讓請求報文體積更小,或者使用http2協議,也可以很好的減少報文的體積,提高傳輸效率

socket是rpc經常採用的通訊手段之一,rpc是在socket的基礎上實現的,它比socket需要更多的網路和系統資源。除了socket,rpc還有其他的通訊方法,比如:http、作業系統自帶的管道等技術來實現對於遠端程式的呼叫。

php的rpc框架有: phprpc,yar, thrift, grpc, swoole, hprose。phprpc 和 yar 是目前聽說和接觸最多的了。(自己公司使用的是yaf框架:

目前流行使用 thrift 4層協議

thrift提供跨語言的服務框架,這種跨語言主要體現在它對多種語言的編譯功能的支援,使用者只需要使用idl描述好介面函式,只需要一條簡單的命令,thrift就能夠把按照idl格式描述的介面檔案翻譯成各種語言版本。

python實現rpc遠端呼叫

遠端呼叫就是將物件名 函式名 引數等傳遞給遠端伺服器,伺服器將處理結果返回給客戶端。遠端呼叫使得呼叫遠端伺服器的物件 方法的方式就和呼叫本地物件 方法的方式差不多,因為我們通過網路程式設計把這些都隱藏起來了。遠端呼叫是分布式系統的基礎。遠端呼叫一般分為兩種,遠端過程呼叫 rpc 和遠端方法呼叫 rm...

遠端過程呼叫 RPC

rpc是遠端過程呼叫 remote procedure call 的縮寫。就是一台伺服器上的服務通過引數傳遞的方式呼叫另一台服 務器的服務,並獲取返回結果。比如有兩台伺服器a b,a上的服務想要呼叫b上的函式或方法,由於不在同乙個記憶體空間,不能直接呼叫,需要通過網路來表達呼叫的語義和傳達呼叫的資料...

RPC遠端過程呼叫

1.rpc 1.1 rpc remote procedure call 遠端過程呼叫.遠端過程指的是不是同乙個程序。1.2 rpc至少有兩個過程。呼叫方 client 被呼叫方 server 1.3 client主動發起請求,呼叫指定ip和port的server中的方法,把呼叫結果返回給client...