Page 140 - Yazılım Teknolojileri Araştırma Bülteni 2023
P. 140

140 | REST API ve gRPC Mimari Stillerinin Karşılaştırılması



           Bu özellik özellikle büyük veri sistemleri ve dağıtık sistemler için önemlidir. Avro, birçok büyük veri
           teknolojisi tarafından desteklenmektedir ve genellikle Big Data sistemleri, veri entegrasyonu ve

           dağıtık sistemler gibi senaryolarda yaygın olarak kullanılır. Örneğin, Apache Kafka, Apache Hadoop
           ve Apache Spark gibi popüler veri işleme çözümleri Avro’yu desteklemektedir.




           1.3. Thrift


           Thrift, Facebook tarafından geliştirilen bir veri iletişim formatıdır. Istemci-sunucu iletişimi veya veri
           depolama gibi senaryolarda kullanılabilir. Thrift, platformlar arası bir çözüm sunar ve farklı dillerde
           yazılmış sistemler arasında veri alışverişini kolaylaştırır. Thrift, birleştirilmiş veri yapısına IDL’e dayanır.
           Bu IDL, veri türleri, yapılar, fonksiyonlar ve servisler gibi veri yapılarını tanımlamak için kullanılır. IDL,
           bir arayüz tanımı olarak düşünülebilir ve istemci ve sunucunun birbirleriyle nasıl iletişim kurduklarını
           belirler.  Thrift  mesajlaşma  formatı,  verilerin  seri  hale  getirilmesi  (serialization)  ve  ayrıştırılması
           (deserialization) için kullanılan bir protokol olarak çalışır. Bu sayede, farklı dillerde yazılmış istemci ve

           sunucuların birbirleriyle uyumlu bir şekilde veri alışverişi yapması sağlanır. Thrift, çeşitli programlama
           dilleri için kod üretebilir ve bu dillerdeki nesneleri Thrift mesajlarına dönüştürüp iletebilir. Thrift
           desteklediği diller arasında C++, Java, Python, Ruby, PHP ve daha birçok dil bulunmaktadır. Thrift,
           hafif bir yapıya sahip olması ve yüksek performans sunması nedeniyle özellikle dağıtık sistemlerde
           ve mikro hizmet mimarilerinde tercih edilen bir mesajlaşma formatıdır.




           2. gRPC’nin Avantajları


           Bu bölümde gRPC’nin avantajları; performans, otomatik kod oluşturma, standartlar, veri akışı, zaman
           aşımı, istek iptali başlıkları altında anlatılmıştır.





           2.1. Performans

           gRPC  mesajları  verimli  bir  binary  mesaj  formatı  olan  Protobuf  kullanılarak  serileştirilir.  Binary

           formatında küçük boyutlu serileştirilmiş mesajlar HTTP 2.0 protokolünün hızı ile birleştirildiğinde
           performanslı bir iletişim altyapısı oluşturulmuş olur.




           2.2. Otomatik Kod Oluşturma


           gRPC servislerinin metotlarının ve mesajlarının kontratlarını tanımlayan şey proto dosyalarıdır. Bu
           dosyalar gRPC frameworkleri ile ihtiyaç duyulan sınıflar, metotlar ve mesajların oluşturulmasında
           kullanılabilir. Farklı diller kullanılsa bile tek bir proto dosyası üzerinden o dile ait kodların otomatik
           üretilmesi sağlanabilir.
   135   136   137   138   139   140   141   142   143   144   145