Python 遠程過程調(diào)用

python 遠程過程調(diào)用

遠程過程調(diào)用(rpc)系統(tǒng)使我們可以使用在本地庫中調(diào)用函數(shù)時所使用的語法來調(diào)用遠程服務(wù)器上可用的函數(shù)。這在兩種情況下很有用:

  • 使用rpc利用多臺計算機的處理能力,而無需更改用于調(diào)用遠程系統(tǒng)中程序的代碼。
  • 處理所需的數(shù)據(jù)僅在遠程系統(tǒng)中可用。

因此,在python中,可以將一臺計算機視為服務(wù)器,將另一臺計算機視為客戶端,這將對服務(wù)器進行調(diào)用以運行遠程過程。在下面示例中,我們將使用localhost并將其用作服務(wù)器和客戶端。

 

1. 運行服務(wù)器

內(nèi)置服務(wù)器附帶python語言,可以將其作為本地服務(wù)器運行。運行該服務(wù)器的腳本位于python安裝的bin文件夾下,腳本名為classic.py??梢栽趐ython提示符下運行它,并檢查它是否在本地服務(wù)器上運行。

 
# filename : example.py
# copyright : 2020 by yapf
# author by : www.slktour.com
# date : 2020-08-25
$ python bin/classic.py

當運行上面的程序時,得到以下輸出:

 
# filename : example.py
# copyright : 2020 by yapf
# author by : www.slktour.com
# date : 2020-08-25
info:slave/18812:server started on [127.0.0.1]:18812

 

2. 運行客戶端

接下來,使用rpyc模塊運行客戶端以執(zhí)行遠程過程調(diào)用。下面的示例中,在遠程服務(wù)器中執(zhí)行打印功能。

 
# filename : example.py
# copyright : 2020 by yapf
# author by : www.slktour.com
# date : 2020-08-25
import rpyc
conn = rpyc.classic.connect("localhost")
conn.execute("print('hello from yapf')")

當運行上面的程序時,得到以下輸出:

# filename : example.py
# copyright : 2020 by yapf
# author by : www.slktour.com
# date : 2020-08-25
hello from yapf

3. 通過rpc進行表達評估

使用上面的代碼示例,可以使用python的內(nèi)置函數(shù)通過rpc執(zhí)行和評估表達式。

 
# filename : example.py
# copyright : 2020 by yapf
# author by : www.slktour.com
# date : 2020-08-25
import rpyc
conn = rpyc.classic.connect("localhost")
conn.execute('import math')
conn.eval('2*math.pi')

當運行上面的程序時,得到以下輸出:

 
# filename : example.py
# copyright : 2020 by yapf
# author by : www.slktour.com
# date : 2020-08-25
6.283185307179586
相關(guān)文章
亚洲国产精品第一区二区,久久免费视频77,99V久久综合狠狠综合久久,国产免费久久九九免费视频