Система удаленного вызова процедур (RPC) позволяет вам вызывать функцию, доступную на удаленном сервере, используя тот же синтаксис, который используется при вызове функции в локальной библиотеке. Это полезно в двух ситуациях.
- Вы можете использовать вычислительную мощность нескольких машин с помощью rpc без изменения кода для вызова программ, расположенных в удаленных системах.
- Данные, необходимые для обработки, доступны только в удаленной системе.
Таким образом, в python мы можем рассматривать одну машину как сервер, а другую — как клиент, который будет вызывать сервер для запуска удаленной процедуры. В нашем примере мы возьмем localhost и используем его как сервер и клиент.
Запуск сервера
Язык Python поставляется со встроенным сервером, который мы можем запустить как локальный сервер. Скрипт для запуска этого сервера находится в папке bin установки python и называется classic.py. Мы можем запустить его в приглашении python и проверить, работает ли он как локальный сервер.
python bin/classic.py
Когда мы запускаем вышеуказанную программу, мы получаем следующий вывод:
INFO:SLAVE/18812:server started on [127.0.0.1]:18812
Запуск клиента
Затем мы запускаем клиент, используя модуль rpyc для выполнения удаленного вызова процедуры. В приведенном ниже примере мы выполняем функцию печати на удаленном сервере.
import rpyc conn = rpyc.classic.connect("localhost") conn.execute("print('Hello from Tutorialspoint')")
Когда мы запускаем вышеуказанную программу, мы получаем следующий вывод:
Hello from Tutorialspoint
Оценка выражения через RPC
Используя приведенные выше примеры кода, мы можем использовать встроенные функции python для выполнения и вычисления выражений через rpc.
import rpyc conn = rpyc.classic.connect("localhost") conn.execute('import math') conn.eval('2*math.pi')
Когда мы запускаем вышеуказанную программу, мы получаем следующий вывод: