Python Tarafında ProtoBuf (Protocol Buffers) Serileştirme

Protocol Buffer, Google'ın yapısal verilerin (structured data) serileştirilmesi için geliştirdiği bir protokol. gRPC ile sıklıkla anılır. XML benzeri düşünebiliriz ama çok daha az yer tutar ve serileştirme süreleri hızlıdır. Şu sıkça gördüğümüz proto uzantılı dosyaların ana fikridir. Nam-ı diğer ProtoBuf örneğin ağ üzerinden gönderilecek verinin tanımını yapan bir sözleşmedir. Sözleşmenin ana unsuru mesajdır. Dosya içeriğine bakınca anlaşılması kolay bir mevzu. Tek başına bir anlamı yoktur. protoc isimli derleyiciden geçmesi gerekir. Bu derleme sonucu insan gözüyle pek de okunamayan binary bir türev ortaya çıkar. Bunu ağ üstünden gönderebilir, bir yerlerde veri olarak saklayabilir ya da ille de okumak istersek JSON, XML gibi formatlara dönüştürebiliriz. [Daha fazla]

MongoDB ile Bir GO Uygulamasını Konuşturmak

Elimizdeki malzemeleri sayalım. MongoDB için bir docker imajı, gRPC ve GoLang. Bu üçünü kullanarak CRUD operasyonlarını icra eden basit bir uygulama geliştirmek niyetindeyim. Bir önceki öğretide Redis docker container'dan yararlanmıştım. Ahch-to sistemini kirletmemek adına MongoDB için de benzer şekilde hareket edeceğim. Açıkçası GoLang bilgim epey paslanmış durumda ve sistemde yüklü olup olmadığını dahi bilmiyorum. [Daha fazla]

gRPC Nedir, Nasıl Uygulanır?

Bu yazımızda protobuf tabanlı çalışan Google Remote Procedure Call(gRPC) protokolünü inclemeye çalışacağız. Özellikle dağıtık sistemlerde taraflar arası haberleşmede TCP bazlı binary serileştirm ilkelerine dayanan bu protokol REST'in standart iletişim teknikleri yerine daha çok tercih edilmeye başlanmış görünüyor. Genel amaç binary serileştirmenin performans avantajını kullanarak Remote Procedure Call tekniğini microservice sistemlerinde uygulayabilmek. Bizde bu konuyu Node.js tabanlı bir örnekle incelemeye çalışacağız. [Daha fazla]

GoLang - Google ProtoBuf Kullanımı

Veriyi kullandığımız dile göre çeşitli şekillerde ifade edebiliriz. Eğer nesne yönelimli bir dil kullanıyorsak buradaki başrol oyuncumuz sınıflar olacaktır. Verinin nesnel olarak ifade edilişinde rol olan sınıf ve benzeri tipler, çalışma zamanında taşıdıkları içerikleri ile hareket halindedir. Bu hareket aynı uygulamana alanında olabileceği gibi uygulamalar arasında da gerçekleşebilir. Veri ağ üzerinde de hareket edebilir. Verinin bu şekilde dolaşımı sırasında bazen serileştirilmesi de gerekir. Tabii bu noktada karşımıza platform bağımsızlık, okunabilirlik, genişletilebilirlik ve performans gibi kriterler çıkar. [Daha fazla]