Python - Cuộc gọi thủ tục từ xa
Hệ thống Gọi Thủ tục Từ xa (RPC) cho phép bạn gọi một hàm có sẵn trên máy chủ từ xa bằng cách sử dụng cùng một cú pháp được sử dụng khi gọi một hàm trong thư viện cục bộ. Điều này hữu ích trong hai tình huống.
- Bạn có thể sử dụng sức mạnh xử lý từ nhiều máy sử dụng rpc mà không cần thay đổi mã để thực hiện cuộc gọi đến các chương trình nằm trong hệ thống từ xa.
- Dữ liệu cần thiết cho quá trình xử lý chỉ có sẵn trong hệ thống từ xa.
Vì vậy, trong python, chúng ta có thể coi một máy là máy chủ và máy khác là máy khách sẽ thực hiện cuộc gọi đến máy chủ để chạy thủ tục từ xa. Trong ví dụ của chúng tôi, chúng tôi sẽ sử dụng localhost và sử dụng nó như một máy chủ và máy khách.
Chạy máy chủ
Ngôn ngữ python đi kèm với một máy chủ tích hợp mà chúng tôi có thể chạy như một máy chủ cục bộ. Tập lệnh để chạy máy chủ này nằm trong thư mục bin của cài đặt python và được đặt tên là classic.py. Chúng tôi có thể chạy nó trong lời nhắc python và kiểm tra nó đang chạy như một máy chủ cục bộ.
python bin/classic.py
Khi chúng tôi chạy chương trình trên, chúng tôi nhận được kết quả sau:
INFO:SLAVE/18812:server started on [127.0.0.1]:18812
Chạy khách hàng
Tiếp theo, chúng tôi chạy máy khách bằng cách sử dụng mô-đun rpyc để thực hiện một cuộc gọi thủ tục từ xa. Trong ví dụ dưới đây, chúng tôi thực thi chức năng in trong máy chủ từ xa.
import rpyc
conn = rpyc.classic.connect("localhost")
conn.execute("print('Hello from Tutorialspoint')")
Khi chúng tôi chạy chương trình trên, chúng tôi nhận được kết quả sau:
Hello from Tutorialspoint
Đánh giá biểu hiện thông qua RPC
Sử dụng các ví dụ mã trên, chúng ta có thể sử dụng các hàm có sẵn của python để thực thi và đánh giá các biểu thức thông qua rpc.
import rpyc
conn = rpyc.classic.connect("localhost")
conn.execute('import math')
conn.eval('2*math.pi')
Khi chúng tôi chạy chương trình trên, chúng tôi nhận được kết quả sau:
6.283185307179586