Python - Uzaktan Prosedür Çağrısı

Uzaktan Yordam Çağrısı (RPC) sistemi, yerel bir kitaplıkta bir işlevi çağırırken kullanılan aynı sözdizimini kullanarak uzak bir sunucuda bulunan bir işlevi çağırmanıza olanak tanır. Bu iki durumda kullanışlıdır.

  • Uzak sistemlerde bulunan programlara çağrı yapmak için kodu değiştirmeden, rpc kullanarak birden fazla makineden gelen işlem gücünü kullanabilirsiniz.
  • İşleme için gereken veriler yalnızca uzaktaki sistemde mevcuttur.

Yani python'da bir makineyi sunucu olarak ve diğer makineyi uzak prosedürü çalıştırmak için sunucuya bir çağrı yapacak bir istemci olarak ele alabiliriz. Örneğimizde localhost'u alıp hem sunucu hem de istemci olarak kullanacağız.

Sunucu Çalıştırma

Python dili, yerel bir sunucu olarak çalıştırabileceğimiz yerleşik bir sunucu ile birlikte gelir. Bu sunucuyu çalıştıracak komut dosyası, python kurulumunun bin klasörünün altında bulunur ve classic.py olarak adlandırılır. Bunu python komut isteminde çalıştırabilir ve yerel sunucu olarak çalışmasını kontrol edebiliriz.

python bin/classic.py

Yukarıdaki programı çalıştırdığımızda aşağıdaki çıktıyı alıyoruz -

INFO:SLAVE/18812:server started on [127.0.0.1]:18812

Bir İstemci Çalıştırmak

Daha sonra, uzak prosedür çağrısı yürütmek için istemciyi rpyc modülünü kullanarak çalıştırıyoruz. Aşağıdaki örnekte, uzak sunucuda yazdırma işlevini gerçekleştiriyoruz.

import rpyc
conn = rpyc.classic.connect("localhost")
conn.execute("print('Hello from Tutorialspoint')")

Yukarıdaki programı çalıştırdığımızda aşağıdaki çıktıyı alıyoruz -

Hello from Tutorialspoint

RPC aracılığıyla İfade Değerlendirmesi

Yukarıdaki kod örneklerini kullanarak, rpc aracılığıyla ifadelerin yürütülmesi ve değerlendirilmesi için python'un yerleşik işlevlerini kullanabiliriz.

import rpyc
conn = rpyc.classic.connect("localhost")
conn.execute('import math')
conn.eval('2*math.pi')

Yukarıdaki programı çalıştırdığımızda aşağıdaki çıktıyı alıyoruz -

6.283185307179586