python實現rpc遠端呼叫

2021-07-14 10:07:51 字數 1045 閱讀 7489

遠端呼叫就是將物件名、函式名、引數等傳遞給遠端伺服器,伺服器將處理結果返回給客戶端。

遠端呼叫使得呼叫遠端伺服器的物件、方法的方式就和呼叫本地物件、方法的方式差不多,因為我們通過網路程式設計把這些都隱藏起來了。遠端呼叫是分布式系統的基礎。

遠端呼叫一般分為兩種,遠端過程呼叫(rpc)和遠端方法呼叫(rmi),這裡,我們介紹rpc遠端過程呼叫。

service.py**如下:

from ******xmlrpcserver import ******xmlrpcserver  

def add(x, y):

return x + y

if __name__ == '__main__':

s = ******xmlrpcserver(('127.0.0.1', 8080))

s.register_function(add)

s.serve_forever()

s是乙個繫結了本地8080埠的伺服器物件,register_function()方法將函式add註冊到s中。serve_forever()啟動伺服器。

client.py**如下:

from xmlrpclib import serverproxy

if __name__ == '__main__':

s = serverproxy("")

print s.add(3,4)

現在,執行server.py,然後執行client.py,client.py所在的console會輸出7。

我們用wireshark看一下這期間傳遞的資料是什麼樣子的,請求的資料:

<?xml version='1.0' ?>

add

3

4

響應的資料:

<?xml version='1.0' ?>

7

遠端呼叫框架RPC

rpc就是 遠端呼叫框架 remote procedure call 遠端呼叫意思就是 被呼叫方法的具體實現不在程式執行本地,而是在別的某個遠端地方。比如 a client 呼叫 b server 提供的remoteadd方法 首先a與b之間建立乙個tcp連線 然後a把需要呼叫的方法名 這裡是rem...

golang 實現rpc遠端呼叫,開箱即用

rpc 遠端方法呼叫 優點 提公升系統可擴充套件性,提公升可維護性,和吃持續交付能力 實現系統的高可用等 缺點 rpc受限於網路 實現乙個rcp遠端呼叫關鍵在於帶裡層的實現 還是貼 吧 將client 位址賦值 func new addr string client jrp實現 func c cli...

RPC遠端呼叫,go語言實現RPC小Demo

它是一種通過網路從遠端電腦程式上請求服務,而不需要了解底層網路技術的協議。採用客戶機 伺服器模式。請求程式是乙個客戶機 而服務服務提供程式就是乙個伺服器。過程 1.呼叫客戶端控制代碼 執行傳送引數。2.呼叫本地系統核心傳送網路訊息。3.訊息傳送到遠端主機。4.伺服器控制代碼得到訊息並取得引數。5.執...