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.