Google Pub/Sub, Google Cloud Platform (GCP) tarafından sunulan, mesaj tabanlı bir yayınlama-abonelik (publish-subscribe) hizmetidir. Bu sistem, uygulamalar arasında güvenilir, asenkron ve ölçeklenebilir bir mesajlaşma altyapısı sunar. Google Pub/Sub, özellikle büyük ölçekli sistemlerde veri akışını düzenlemek ve mikro hizmetler arasında iletişimi sağlamak için geliştirilmiştir.
Bu yazıda, Google Pub/Sub’ın ne olduğu, nasıl çalıştığı, avantajları ve kullanım alanlarını detaylı bir şekilde inceleyeceğiz.
Google Pub/Sub Nedir?
Google Pub/Sub, mesajların bir gönderici (yayıncı) tarafından bir konuya (topic) yayınlanmasını ve bu mesajların bir veya birden fazla alıcı (aboneler) tarafından alınmasını sağlayan bir iletişim sistemidir.
Bu sistem, aşağıdaki bileşenlerle çalışır:
- Publisher (Yayıncı): Mesajları bir konuya gönderir.
- Topic (Konu): Mesajların iletilmesini sağlayan sanal bir kanaldır.
- Subscriber (Abone): Mesajları bir konudan alır ve işler.
- Subscription (Abonelik): Belirli bir abonenin bir konuya bağlanmasını tanımlar.
Google Pub/Sub Nasıl Çalışır?
Google Pub/Sub, yayınlama ve abonelik modeliyle çalışır. Bu model, yayıncıların ve abonelerin doğrudan birbirine bağlı olmadan iletişim kurmasını sağlar.
Çalışma Prensibi:
- Mesaj Yayınlama:
Yayıncı, bir konuya (topic) mesaj gönderir. Mesajlar, sistem tarafından güvenilir bir şekilde saklanır. - Abonelik Oluşturma:
Bir abone, belirli bir konuya abonelik oluşturur. Abonelik, bir abonenin mesajları nasıl alacağını tanımlar (örneğin, anında veya daha sonra). - Mesaj Teslimatı:
Mesajlar, abonelere push (itme) veya pull (çekme) modeliyle teslim edilir:- Push Mode: Mesajlar abonenin belirttiği bir URL’ye otomatik olarak gönderilir.
- Pull Mode: Aboneler, mesajları sistemden manuel olarak çeker.
- Mesaj İşleme ve Doğrulama:
Abone, mesajı aldıktan sonra işler ve sistem bu mesajın başarıyla alındığını doğrular. Doğrulama yapılmazsa mesaj tekrar gönderilir.
Google Pub/Sub Avantajları
Google Pub/Sub, modern uygulama geliştirme süreçlerinde birçok avantaj sunar:
1. Asenkron İletişim
- Yayıncı ve aboneler birbirine bağımlı değildir; bu da sistemlerin bağımsız çalışmasına olanak tanır.
- Mesajlar, zamanlama sorunları olmadan sırayla işlenebilir.
2. Yüksek Ölçeklenebilirlik
- Google Pub/Sub, büyük ölçekli veri akışlarını yönetmek için tasarlanmıştır.
- Yüksek trafik koşullarında bile performansını korur ve sınırsız mesaj akışını destekler.
3. Dağıtık Sistemler İçin İdeal
- Mikro hizmet mimarisiyle çalışan sistemlerde bileşenler arasında güvenilir iletişim sağlar.
- Uygulamalar, aynı sistemde veya farklı bölgelerde olsa bile mesaj alışverişi yapabilir.
4. Güvenilir Mesaj Teslimatı
- Google Pub/Sub, mesajların kaybolmasını önler. Mesajlar alıcı tarafından işlenene kadar saklanır ve gerekirse tekrar gönderilir.
5. Esnek Teslimat Modelleri
- Push Mode ve Pull Mode seçenekleriyle mesaj teslimatı esneklik kazanır.
- Uygulama ihtiyaçlarına uygun teslimat yöntemi seçilebilir.
6. Gerçek Zamanlı İşleme
- Verilerin gerçek zamanlı olarak iletilmesini sağlar. Bu, akış verilerini analiz etme gibi senaryolar için idealdir.
7. Entegrasyon Kolaylığı
- Google Cloud ekosistemindeki diğer hizmetlerle kolayca entegre olur. Örneğin:
- Google Cloud Functions (olay tetikleme)
- Google BigQuery (veri analitiği)
Google Pub/Sub Kullanım Alanları
Google Pub/Sub, çok çeşitli senaryolarda kullanılabilir. İşte öne çıkan bazı kullanım alanları:
1. Gerçek Zamanlı Veri Akışı
- Sensör verileri veya kullanıcı etkinliklerinin gerçek zamanlı analizi için kullanılır.
- Örnek: IoT cihazlarından gelen verilerin anlık olarak işlenmesi.
2. Mikro Hizmet İletişimi
- Mikro hizmet mimarisine sahip sistemlerde, farklı hizmetler arasında mesaj alışverişini sağlar.
- Örnek: Bir ödeme sistemi, bir envanter yönetim sistemine stok bilgisini gönderebilir.
3. Log ve İzleme
- Sistem günlüklerinin toplanması ve izlenmesi için kullanılabilir.
- Örnek: Uygulama hatalarının gerçek zamanlı tespiti ve raporlanması.
4. Olay Tabanlı İşleme
- Bir olay tetiklendiğinde (örneğin, bir dosyanın yüklenmesi), bir işlevin çalıştırılması için kullanılır.
- Örnek: Yeni bir dosya yüklendiğinde, bu dosyayı işleyen bir işlem başlatmak.
5. E-ticaret ve Bildirim Sistemleri
- Müşterilere e-posta veya bildirim göndermek için kullanılır.
- Örnek: Bir sipariş onaylandığında, müşteriye otomatik bildirim gönderilmesi.
Google Pub/Sub ile İlgili Sıkça Sorulan Sorular
1. Pub/Sub Ücretlendirme Nasıl Yapılır?
Google Pub/Sub, kullanım miktarına dayalı olarak ücretlendirilir. Ücretler genellikle şu parametrelere göre belirlenir:
- İşlenen mesaj sayısı.
- Mesajların boyutu.
- Mesaj saklama süresi.
2. Pub/Sub Hangi Programlama Dillerini Destekler?
Google Pub/Sub, Python, Java, Go, Node.js gibi birçok programlama dili için SDK ve API desteği sunar.
3. Mesaj Kaybolur Mu?
Google Pub/Sub, mesajların kaybolmasını önlemek için mesajları abone doğrulaması yapılana kadar güvenli bir şekilde saklar.
Google Pub/Sub ile Benzer Sistemler
Google Pub/Sub’a benzer diğer mesajlaşma sistemleri şunlardır:
- Apache Kafka: Büyük ölçekli veri akışları ve gerçek zamanlı analitik için kullanılır.
- Amazon SNS (Simple Notification Service): AWS’in yayınlama-abonelik hizmetidir.
- RabbitMQ: Mesaj kuyruğu ve iletişim altyapısı sağlayan bir araçtır.
Pub/Sub, Google Cloud ile entegrasyon avantajı sayesinde diğer çözümlere kıyasla öne çıkar.
Google Pub/Sub, modern uygulamalarda veri akışını düzenlemek ve mikro hizmetler arasında iletişim sağlamak için ideal bir araçtır. Güvenilirliği, ölçeklenebilirliği ve esnekliği sayesinde, gerçek zamanlı veri akışı ve dağıtık sistemler için güçlü bir çözüm sunar. Eğer Google Pub/Sub veya Google Cloud hizmetlerini projelerinize entegre etmek istiyorsanız, Komtaş Bilgi Yönetimi uzman kadrosuyla size destek olmaya hazırdır. Daha fazla bilgi için bizimle iletişime geçin!