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