Google Pub Sub, resmi olarak Google Cloud Pub/Sub olarak bilinen, bağımsız uygulamalar ve hizmetler arasında eşzamansız iletişimi sağlamak için tasarlanmış, tamamen yönetilen, gerçek zamanlı bir mesajlaşma hizmetidir. Özünde, Google Pub Sub, olay odaklı mimariler için güvenilir, ölçeklenebilir ve küresel bir yayınlama-abone olma modeli sunarak sistemlerin ayrıştırılmasını kolaylaştırır. Bu durum, onu modern bulut tabanlı uygulamalar için önemli bir yapı taşı haline getirir ve büyük ölçekte hem olay alımını hem de dağıtımını destekler.
Mikro hizmetler tasarlıyor, analitik işlem hatları kuruyor veya dağıtılmış sistemleri entegre ediyor olun, Google Pub Sub'ı anlamak, bulut tabanlı geliştirme ile ilgilenen herkes için çok önemlidir.
Google Pub Sub Nasıl Çalışır: Temel Kavramlar ve Mimari
Temelinde, Google Pub Sub, yayınlama-abone olma (pub/sub) mesajlaşma paradigmasına göre çalışır. Bu model, bir hizmetin (yayıncı) bir konuya mesaj göndermesine ve diğer hizmetlerin (aboneler) bu mesajları eşzamansız olarak almasına olanak tanır.
Google Pub Sub'ın Temel Bileşenleri
- Konular (Topics): Yayıncılar tarafından mesajların gönderildiği adlandırılmış kaynaklar.
- Abonelikler (Subscriptions): Belirli bir konudan gelen ve abonelere iletilen mesaj akışını temsil eder.
- Yayıncılar (Publishers): Bir konuya mesaj oluşturan ve gönderen (yayınlayan) uygulamalar.
- Aboneler (Subscribers): Bir konuya bağlı abonelikten mesaj alan uygulamalar veya hizmetler.
Mesaj Akışı
1. Bir yayıncı, bir konuya mesaj gönderir.
2. Konuya bir veya daha fazla abonelik eklenir.
3. Aboneler, aboneliklerinden mesajları çeker (pull) veya alır (push).
4. Mesajların en az bir kez teslimatını sağlamak için aboneler tarafından onaylanır.
Google Pub Sub hem push hem de pull teslimatını destekler:
- Pull (Çekme): Abone uygulaması, abonelikten mesajları açıkça ister (çeker).
- Push (İtme): Google Pub Sub, mesajları önceden yapılandırılmış bir uç noktaya (genellikle bir HTTP sunucusu) gönderir.
Güvenilirlik ve Ölçeklenebilirlik
Google Pub Sub, mesajları birden fazla bölgede yedekli olarak depolayarak en az bir kez teslimatı garanti eder. Saniyede milyonlarca mesajı işlemek için otomatik olarak ölçeklenir; bu durum, büyük veri, analitik ve IoT senaryoları için hayati öneme sahiptir.
Google Pub Sub'ı Ayıran Temel Özellikler
1. Tamamen Yönetilen ve Sunucusuz
Sunucuları, kümeleri veya bölümlemeyi yönetmeye gerek yok. Google Pub Sub, sahne arkasında otomatik olarak ölçeklenir, kullanılabilirliği yönetir ve dayanıklılığı sağlar.
2. Küresel Kullanılabilirlik
Bölgeler arası çalışmak üzere tasarlanmıştır, bu da onu küresel uygulamalar ve olağanüstü durum kurtarma senaryoları için ideal kılar.
3. Esnek Teslimat Modları
Mimarinize uyacak şekilde push ve pull teslimat seçenekleri arasında seçim yapın. Fan-out (birden çoğa) modelleri doğal olarak desteklenir.
4. Güvenlik ve Uyum
Tüm veriler aktarım sırasında ve depoda şifrelenir. Erişim, IAM (Kimlik ve Erişim Yönetimi) politikaları aracılığıyla kontrol edilir ve yalnızca yetkili hizmetlerin konular ve aboneliklerle etkileşimde bulunması sağlanır.
5. Sıralı Teslimat ve Tam Olarak Bir Kez İşleme
Anahtar başına isteğe bağlı mesaj sıralaması ve Dataflow ile entegrasyon, gelişmiş kullanım durumları için tam olarak bir kez işleme semantiğini mümkün kılar.
Google Pub Sub Kurulumu: Adım Adım Kılavuz
Tipik bir bulut projesinde Google Pub Sub'ı kurma ve kullanma sürecini inceleyelim.
1. Konu Oluşturma
gcloud pubsub topics create my-topic
2. Abonelik Oluşturma
gcloud pubsub subscriptions create my-subscription --topic=my-topic
3. Mesaj Yayınlama
gcloud pubsub topics publish my-topic --message="Hello, world!"
4. Mesajları Çekme
gcloud pubsub subscriptions pull my-subscription --auto-ack
Alternatif olarak, Pub/Sub'ı kod tabanınıza entegre etmek için Java, Python, Node.js ve diğer programlama dilleri için Google Cloud Pub/Sub istemci kitaplıklarını kullanabilirsiniz.
Örnek: Mesaj Yayınlama ve Alma (Python)
from google.cloud import pubsub_v1
publisher = pubsub_v1.PublisherClient()
topic_path = publisher.topic_path('your-project-id', 'my-topic')
publisher.publish(topic_path, b'Hello, Pub/Sub!')
subscriber = pubsub_v1.SubscriberClient()
subscription_path = subscriber.subscription_path('your-project-id', 'my-subscription')def callback(message):
print(f"Received: {message.data}")
message.ack()subscriber.subscribe(subscription_path, callback=callback)
Google Pub Sub için Gerçek Dünya Kullanım Durumları
1. Olay Odaklı Mikro Hizmetler
Mikro hizmetlerin genellikle eşzamansız iletişim kurması gerekir. Google Pub Sub, hizmetlerin hangi sistemlerin bunları tüketeceğini bilmeden olaylar yaymasını sağlayarak bağımlılığı azaltır ve ölçeklenebilirliği artırır.
2. Analitik ve Günlük Verilerini Alma
Birden fazla kaynaktan BigQuery, Dataflow veya diğer analitik platformlara günlükleri ve analitik olayları akışla aktarmak, Pub/Sub'ı alım katmanı olarak kullanarak sorunsuz hale gelir.
3. IoT Veri Akışları
Binlerce veya milyonlarca IoT cihazı, sensör verilerini Pub/Sub konularına yayınlayabilir ve arka uç hizmetleri verileri gerçek zamanlı olarak işleyebilir.
4. Gerçek Zamanlı Bildirimler
Uygulamalar, Google Pub Sub'ı kullanarak kullanıcılara gerçek zamanlı bildirimler gönderebilir, kontrol panellerini güncelleyebilir veya gelen olaylara dayalı iş akışlarını tetikleyebilir.
5. İş Akışı Orkestrasyonu
Dağıtılmış sistemlerdeki karmaşık iş akışları, sıkı bağımlılıklar olmadan süreçleri tetiklemek ve adımları koordine etmek için Pub/Sub'ı kullanabilir.
Google Pub Sub'ı API Odaklı Geliştirme ile Entegre Etme
Google Pub Sub ile etkileşime giren sağlam API'ler tasarlamak yaygın bir gereksinimdir. İşte Apidog gibi araçların paha biçilmez hale geldiği yer burasıdır. Apidog, geliştiricilerin şunları yapmasına olanak tanır:
- Pub/Sub konularına yayın yapan veya abone olan API'leri tasarlama ve belgeleme.
- Geliştirme sırasında mesaj akışlarını simüle etmek için Pub/Sub uç noktalarını taklit etme.
- Pub/Sub'dan mesaj alan HTTP push uç noktalarını test etme ve gelen verileri doğru bir şekilde işlediklerinden emin olma.
Apidog'u iş akışınıza entegre ederek, Google Pub Sub ile etkileşime giren API'leri tasarlayabilir, taklit edebilir ve test edebilir, böylece geliştirmenizi kolaylaştırır ve üretim süresini hızlandırırsınız.
Google Pub Sub Kullanımı İçin En İyi Uygulamalar
1. Yapılandırılmış Mesaj Yükleri
Birlikte çalışabilirliği ve kolay ayrıştırmayı sağlamak için mesaj yükleri için her zaman JSON veya Protobuf gibi yapılandırılmış veri formatlarını kullanın.
2. Idempotent Aboneler
En az bir kez teslimat yeniden denemelere neden olabileceğinden, aboneleri yinelenen mesajları zarif bir şekilde işleyecek şekilde tasarlayın.
3. İzleme ve Uyarı
Sistem sağlığını sağlamak için mesaj birikimi, teslimat gecikmesi ve hata oranları gibi Pub/Sub metriklerini izlemek için Google Cloud Monitoring'den yararlanın.
4. Erişim Kontrolü
Konularınıza kimlerin yayın yapabileceğini ve abone olabileceğini sıkı bir şekilde kontrol etmek için IAM rollerini kullanın. İzinleri gerekli minimumda tutun.
5. API-Öncelikli Geliştirme
Pub/Sub API'lerinizi ve mesaj şemalarınızı önceden tanımlayın. Apidog, bu tanımları ekibinizle belgeleyip paylaşmanıza yardımcı olarak tutarlılığı sağlar ve hataları azaltır.
Gelişmiş Özellikler: Sıralama, Filtreleme ve Ölü Harf Konuları
Mesaj Sıralaması
Kesin sıra gerektiren kullanım durumları (örn. finansal işlemler) için Google Pub Sub, anahtarlara göre sıralama yapılmasına olanak tanır ve aynı anahtara sahip tüm mesajların sırayla teslim edilmesini sağlar.Mesaj Filtreleme
Abonelikler, niteliklere göre mesajları filtreleyebilir, böylece abonelerin yalnızca ilgili verileri almasını sağlayarak işleme yükünü azaltır.
Ölü Harf Konuları
Ulaşamayan mesajları işlemek için ölü harf konularını yapılandırın, böylece sorunlu verileri daha sonra inceleme veya yeniden işleme için izole edebilirsiniz.
Google Pub Sub Fiyatlandırması ve Sınırları
Google Pub Sub fiyatlandırması, alınan veya teslim edilen veri hacmine dayanır ve cömert ücretsiz katmanlar sunar (örn. ayda 10 GB'a kadar). Ayrıca mesaj boyutu (10 MB'a kadar), verim ve proje başına konu/abonelik sayısı için kotalar da bulunmaktadır. Ayrıntılar için her zaman en son Google Cloud Pub/Sub fiyatlandırma sayfasını inceleyin.
Pratik Örnek: Google Pub Sub ile Gerçek Zamanlı Analitik İşlem Hattı Oluşturma
Bir web analitik platformu kurduğunuzu varsayalım. Her sayfa görüntüleme olayı, ön uç uygulamanız tarafından bir Pub/Sub konusuna yayınlanır. Bir arka uç hizmeti bu konuya abone olur, olayları işler ve birleştirilmiş verileri BigQuery'de depolar.
İş Akışı:
1. Ön Uç (Frontend): JSON yüklerini pageviews konusuna yayınlar.
2. Pub/Sub: Olayları analytics-service aboneliğine iletir.
3. Arka Uç Abonesi (Backend Subscriber): Mesajları çeker, işler ve BigQuery'ye yazar.
4. Analitik Panosu (Analytics Dashboard): Gerçek zamanlı metrikler için BigQuery'yi sorgular.
Apidog'u kullanarak, bu olayların yayınlanmasını ve alınmasını işleyen API uç noktalarını tasarlayabilir ve belgeleyebilir, ayrıca ön uç ve arka uç entegrasyon testi için taklit yanıtlar oluşturabilirsiniz.
Sonuç: Modern Bulut Uygulamaları İçin Google Pub Sub'da Uzmanlaşmak
Google Pub Sub, olay odaklı, ölçeklenebilir bulut mimarilerinin temel taşıdır. Tamamen yönetilen, küresel ve güvenli tasarımı, onu gerçek zamanlı mesajlaşma, büyük veri alımı ve mikro hizmet iletişimi için başvurulan bir çözüm haline getirir.
API'ler tasarlıyor, iş akışlarını düzenliyor veya analitik işlem hatları kuruyor olun, Google Pub Sub sistemlerinizi ayrıştırmanıza ve inovasyonu hızlandırmanıza olanak tanır. Pub/Sub'ı Apidog gibi güçlü API araçlarıyla eşleştirmek, mesaj odaklı uygulamalarınızın sağlam, iyi belgelenmiş ve bakımı kolay olmasını sağlar.
