Python 遠(yuǎn)程過(guò)程調(diào)用
python 遠(yuǎn)程過(guò)程調(diào)用
遠(yuǎn)程過(guò)程調(diào)用(rpc)系統(tǒng)使我們可以使用在本地庫(kù)中調(diào)用函數(shù)時(shí)所使用的語(yǔ)法來(lái)調(diào)用遠(yuǎn)程服務(wù)器上可用的函數(shù)。這在兩種情況下很有用:
- 使用rpc利用多臺(tái)計(jì)算機(jī)的處理能力,而無(wú)需更改用于調(diào)用遠(yuǎn)程系統(tǒng)中程序的代碼。
- 處理所需的數(shù)據(jù)僅在遠(yuǎn)程系統(tǒng)中可用。
因此,在python中,可以將一臺(tái)計(jì)算機(jī)視為服務(wù)器,將另一臺(tái)計(jì)算機(jī)視為客戶(hù)端,這將對(duì)服務(wù)器進(jìn)行調(diào)用以運(yùn)行遠(yuǎn)程過(guò)程。在下面示例中,我們將使用localhost并將其用作服務(wù)器和客戶(hù)端。
1. 運(yùn)行服務(wù)器
內(nèi)置服務(wù)器附帶python語(yǔ)言,可以將其作為本地服務(wù)器運(yùn)行。運(yùn)行該服務(wù)器的腳本位于python安裝的bin文件夾下,腳本名為classic.py??梢栽趐ython提示符下運(yùn)行它,并檢查它是否在本地服務(wù)器上運(yùn)行。
# filename : example.py
# copyright : 2020 by yapf
# author by :
# date : 2020-08-25
$ python bin/classic.py
當(dāng)運(yùn)行上面的程序時(shí),得到以下輸出:
# filename : example.py
# copyright : 2020 by yapf
# author by :
# date : 2020-08-25
info:slave/18812:server started on [127.0.0.1]:18812
2. 運(yùn)行客戶(hù)端
接下來(lái),使用rpyc模塊運(yùn)行客戶(hù)端以執(zhí)行遠(yuǎn)程過(guò)程調(diào)用。下面的示例中,在遠(yuǎn)程服務(wù)器中執(zhí)行打印功能。
# filename : example.py
# copyright : 2020 by yapf
# author by :
# date : 2020-08-25
import rpyc
conn = rpyc.classic.connect("localhost")
conn.execute("print('hello from yapf')")
當(dāng)運(yùn)行上面的程序時(shí),得到以下輸出:
# filename : example.py
# copyright : 2020 by yapf
# author by :
# date : 2020-08-25
hello from yapf
3. 通過(guò)rpc進(jìn)行表達(dá)評(píng)估
使用上面的代碼示例,可以使用python的內(nèi)置函數(shù)通過(guò)rpc執(zhí)行和評(píng)估表達(dá)式。
# filename : example.py
# copyright : 2020 by yapf
# author by :
# date : 2020-08-25
import rpyc
conn = rpyc.classic.connect("localhost")
conn.execute('import math')
conn.eval('2*math.pi')
當(dāng)運(yùn)行上面的程序時(shí),得到以下輸出:
# filename : example.py
# copyright : 2020 by yapf
# author by :
# date : 2020-08-25
6.283185307179586
相關(guān)文章
- Python 并發(fā)簡(jiǎn)介
- Python 并發(fā)與并行
- Python 系統(tǒng)和內(nèi)存架構(gòu)
- Python 線(xiàn)程
- Python 線(xiàn)程并發(fā)
- Python 同步線(xiàn)程
- Python 線(xiàn)程通信
- Python 測(cè)試線(xiàn)程應(yīng)用程序
- Python 調(diào)試線(xiàn)程應(yīng)用程序
- Python 基準(zhǔn)測(cè)試和分析
- Python 線(xiàn)程池
- Python 進(jìn)程池
- Python 多處理器
- Python 處理器通信
- Python 事件驅(qū)動(dòng)編程
- Python 反應(yīng)式編程