Dağıtılmış Sistemde Uzaktan Yordam Çağrısı (RPC) Protokolü

⚡ Akıllı Özet

Uzaktan Prosedür Çağrısı (RPC), dağıtılmış istemci-sunucu sistemlerinde sıradan bir yerel fonksiyon çağrısının arkasına ağ ayrıntılarını gizleyerek bir programın başka bir adres alanında veya makinede bir prosedürü yürütmesine olanak tanıyan bir süreçler arası iletişim protokolüdür.

  • 📞 Tanım: RPC, bir istemcinin uzak bir sunucudaki bir prosedürü sanki yerel bir çağrıymış gibi çağırmasına olanak tanır.
  • 🗂️ Türleri: Geri çağrı, yayın ve toplu işlem modlu RPC, isteklerin yönlendirilme ve sıraya alınma biçimleri bakımından farklılık gösterir.
  • 🏗️ Archidoku: Her çağrıda beş bileşen birlikte çalışır: istemci, istemci modülü, RPC çalışma zamanı, sunucu modülü ve sunucu.
  • 🔄 Nasıl Çalışır: Stub'lar parametreleri bir mesaja dönüştürür ve çağırana geri döndürülen sonucu çözer.
  • 🇧🇷 takaslar: RPC, dağıtılmış kodu basitleştirir ancak yerel çağrılara kıyasla ağ yükünü ve hata noktalarını artırır.
  • 🤖 Yapay Zeka Açısı: gRPC, mikro hizmetler arasında makine öğrenimi modellerini sunar ve Copilot, RPC komut dosyalarının yazımını hızlandırır.

Dağıtılmış Sistemlerde Uzaktan Prosedür Çağrısı (RPC)

RPC nedir?

Uzaktan Yordam Çağrısı (RPC) bir arası iletişim İstemci-sunucu uygulamaları için kullanılan bir teknik. RPC'nin açılımı Uzaktan Prosedür Çağrısı'dır. RPC mekanizmaları, bir bilgisayar programının, programcının uzaktan etkileşim için ayrıntıları açıkça kodlamasına gerek kalmadan, normal bir prosedür çağrısı olarak kodlanmış bir prosedürü veya alt programı farklı bir adres alanında çalıştırdığı durumlarda kullanılır.

Bu prosedür çağrısı, programlar arasında mesaj verilerini taşımak için UDP ve TCP/IP gibi düşük seviyeli taşıma protokollerini de yönetir.

RPC Türleri

Üç tür RPC şunlardır:

  • Geri arama RPC'si
  • Yayın RPC'si
  • Toplu mod RPC

Geri arama RPC'si

Bu tür RPC, katılımcı süreçler arasında eşler arası (P2P) bir paradigma sağlar. Bir sürecin hem istemci hem de sunucu olarak hareket etmesine yardımcı olur.

Geri Arama RPC'nin İşlevleri:

  • Uzaktan işlenen, etkileşimli uygulama sorunlarını ele alır.
  • Sunucuya istemcinin tanıtıcısını sağlar.
  • Geri çağrı, istemci işleminin beklemesine neden olur.
  • Geri çağrı kilitlenmelerini yönetir.
  • Bu, katılımcı süreçler arasında eşler arası bir paradigmayı kolaylaştırır.

Yayın RPC'si

Yayın RPC'si, istemcinin ağ üzerinde yayınlanan ve bu isteği işleme yöntemine sahip tüm sunucular tarafından işlenen bir isteğidir.

Yayın RPC'nin İşlevleri:

  • İstemcinin istek mesajının yayınlanması gerektiğini belirtmenizi sağlar.
  • Yayın bağlantı noktalarını bildirebilirsiniz.
  • Bu, fiziksel ağ üzerindeki yükü azaltmaya yardımcı olur.

Toplu mod RPC

Toplu işlem modunda çalışan RPC, istemci tarafında ayrı RPC isteklerini bir iletim arabelleğinde sıraya koymaya ve ardından bunları tek bir toplu işlem halinde ağ üzerinden sunucuya göndermeye yardımcı olur.

Toplu işlem modunda RPC'nin işlevleri:

  • İstekleri ağ üzerinden tek bir toplu işlem halinde sunucuya gönderdiği için, istek gönderme işleminde oluşan ek yükü en aza indirir.
  • Bu tür RPC protokolü, yalnızca düşük çağrı hızlarına ihtiyaç duyan uygulamalar için etkilidir.
  • Güvenilir bir iletim protokolüne ihtiyaç var.

RPC Archidoku

RPC mimarisi programın temel olarak beş bileşeninden oluşur:

  1. Müşteri
  2. Müşteri Saplaması
  3. RPC Çalışma Zamanı
  4. Sunucu Saplaması
  5. sunucu

RPC Archidoku

RPC Archidoku

RPC Nasıl Çalışır?

RPC işlemi sırasında aşağıdaki adımlar gerçekleşir:

) 1 Adım İstemci, istemci bileşeni ve RPC çalışma zamanının bir örneği istemci makinesinde çalışır.

) 2 Adım İstemci, parametreleri olağan şekilde ileterek bir istemci stub işlemi başlatır. İstemci stub, istemcinin kendi adres alanında saklanır. Ayrıca, yerel RPC Çalışma Zamanı'ndan isteği sunucu stub'ına göndermesini ister.

) 3 Adım Bu aşamada, kullanıcı normal bir yerel prosedür çağrısı yaparak RPC'ye erişir. RPC Çalışma Zamanı, istemci ve sunucu arasında ağ üzerinden mesaj iletimini yönetir. Ayrıca yeniden iletim, onaylama, yönlendirme ve şifreleme işlemlerini de gerçekleştirir.

) 4 Adım Sunucu prosedürü tamamlandıktan sonra, yürütme sunucu alt bileşenine geri döner; bu bileşen, dönüş değerlerini bir mesaja paketler (marshal eder). Ardından sunucu alt bileşeni, mesajı taşıma katmanına geri gönderir.

) 5 Adım Bu adımda, taşıma katmanı sonuç mesajını istemci taşıma katmanına geri gönderir ve bu katman da mesajı istemci uç noktasına iletir.

) 6 Adım Bu aşamada, istemci tarafı, ortaya çıkan paketteki dönüş parametrelerini ayrıştırır (açar) ve yürütme çağırana geri döner.

RPC'nin özellikleri

RPC'nin temel özellikleri şunlardır:

  • Çağrılan işlem, muhtemelen başka bir makinede bulunan başka bir işlem içindedir.
  • İşlemler adres alanını paylaşmaz.
  • Parametreler yalnızca değerlerle iletilir.
  • RPC, sunucu işleminin ortamında yürütülür.
  • Çağrı prosedürünün ortamına erişim sağlamaz.

RPC'nin özellikleri

RPC'nin önemli özellikleri şunlardır:

  • Basit çağrı sözdizimi.
  • Bilinen anlambilimi sunar.
  • İyi tanımlanmış bir arayüz sağlar.
  • Aynı veya farklı makinelerdeki süreçler arasında iletişim kurabilir.

RPC'nin Avantajları

İşte RPC'nin avantajları/faydaları:

  • RPC, üst düzey programlama dillerindeki geleneksel prosedür çağrıları yoluyla istemcilerin sunucularla iletişim kurmasına yardımcı olur.
  • RPC, yerel prosedür çağrısına (local procedure call) benzer şekilde çalışır, ancak çağrılan prosedür büyük olasılıkla farklı bir işlemde ve genellikle farklı bir bilgisayarda yürütülür.
  • RPC, süreç odaklı ve iş parçacığı odaklı modelleri destekler.
  • RPC, dahili mesaj iletim mekanizmasını kullanıcıdan gizler.
  • Performansı artırmak için birçok protokol katmanını kullanır.
  • RPC, mutlak değerler sağlar.tracÖrneğin, ağ iletişiminin mesaj iletme özelliği kullanıcıdan gizli kalır.
  • RPC hem dağıtılmış hem de yerel ortamlarda kullanılabilir.
  • Kodun yeniden yazılması ve yeniden geliştirilmesi için gereken çaba minimum düzeydedir.

RPC'nin dezavantajları

RPC kullanmanın eksileri/dezavantajları şunlardır:

  • Uzaktan prosedür çağrısı (RPC) parametreleri yalnızca değerlerle iletir; işaretçi (referans) değerlerine izin verilmez.
  • Uzaktan prosedür çağrısı (ve geri dönüş) süresi - yani ek yük - yerel bir prosedüre göre önemli ölçüde daha yüksektir.
  • Bu mekanizma, bir iletişim sistemi, başka bir makine ve başka bir işlem içerdiğinden, arızaya karşı oldukça hassastır.
  • RPC konsepti farklı şekillerde uygulanabildiğinden, tek bir standart bulunmamaktadır.
  • Çoğunlukla etkileşime dayalı olduğu için donanım mimarisi açısından esneklik sunmaz.
  • Uzaktan prosedür çağrısı nedeniyle işlemin maliyeti artar.

SSS

RPC, eylemleri uzak prosedürler olarak sunarken, REST verileri HTTP fiilleri üzerinden erişilen kaynaklar olarak sunar. RPC, yerel bir fonksiyonu çağırmaya benzer; REST ise kaynaklara ve duruma odaklanır.

gRPC şudur: Google'ın modern, yüksek performanslı RPC çerçevesi. HTTP/2 ve Protokolünü kullanır. BufferÇift yönlü akışı desteklediği için mikro hizmet iletişiminde popülerdir.

RPC hem senkron hem de asenkron olabilir. Senkron çağrı, sunucu bir sonuç döndürene kadar beklemeye alınırken, asenkron çağrı hemen döner ve yanıtı daha sonra işler. gRPC gibi çerçeveler her iki stili de destekler.

RPC, ayrı makineler arasında çalışan bir IPC (İşlemler Arası İletişim) biçimidir. Birçok IPC yöntemi tek bir ana bilgisayarda belleği paylaşırken, RPC mesajları bir ağ üzerinden değiştirir, böylece farklı bilgisayarlardaki işlemler işbirliği yapabilir.

Yaygın RPC uygulamaları arasında gRPC, Apache Thrift, XML-RPC, JSON-RPC ve diğerleri yer almaktadır. Java RMI. Veri formatı ve iletim yöntemleri bakımından farklılık gösterirler, ancak hepsi bir istemcinin uzak bir sunucudaki bir prosedürü çağırmasına olanak tanır.

RPC varsayılan olarak güvenli değildir; güvenlik, kullanılan taşıma protokolüne bağlıdır. Uygulamalar, çağrıları korumak için TLS şifrelemesi, kimlik doğrulama belirteçleri ve erişim kontrolleri ekler.

Makine öğrenimi platformları, özellikle gRPC olmak üzere RPC'yi, mikro hizmetler arasında model tahminlerini sunmak için kullanır. Bir istemci özellikler gönderir ve bir çıkarım sonucu alır.ping Yapay zeka sistemleri hızlı ve gevşek bağlantılıdır.

Evet. GitHub Copilot, gRPC için .proto servis tanımları, istemci şablonları ve sunucu işleyicileri oluşturabilir. Geliştiricilerin, üretim ortamına dağıtımdan önce oluşturulan arayüzleri, hata işlemeyi ve sürümlemeyi gözden geçirmeleri yine de gereklidir.

Bu yazıyı şu şekilde özetleyin: