DEV Community

Cover image for Google Pub Sub: Bulut Mesajlaşma Tam Rehberi
Tobias Hoffmann
Tobias Hoffmann

Posted on • Originally published at apidog.com

Google Pub Sub: Bulut Mesajlaşma Tam Rehberi

Google Pub Sub, resmi adıyla Google Cloud Pub/Sub, bağımsız uygulamalar ve servisler arasında eşzamansız iletişim sağlamak üzere tasarlanmış, tamamen yönetilen, gerçek zamanlı bir mesajlaşma servisidir. Olay odaklı mimariler için güvenilir, ölçeklenebilir ve küresel yayınla-abone ol modelini destekler; bu sayede sistemlerin ayrıştırılması ve büyük ölçekte olay yönetimi kolaylaşır.

Apidog'u hemen deneyin

Mikro servis mimarisi kuruyor, analitik veri akışlarını yönetiyor veya dağıtık sistem entegrasyonu yapıyorsanız; Google Pub Sub'ı pratik olarak kullanmak bulut tabanlı geliştirme için kritik önemdedir.

Google Pub Sub Nasıl Çalışır: Temel Kavramlar ve Mimari

Google Pub Sub, publish/subscribe mesajlaşma paradigmasına dayanır. Bir uygulama (yayıncı), bir konuya mesaj gönderir; diğer uygulamalar (aboneler) ise bu mesajları eşzamansız olarak alır.

Google Pub Sub'ın Temel Bileşenleri

  • Konular (Topics): Mesajların gönderildiği adlandırılmış kaynaklar.
  • Abonelikler (Subscriptions): Bir konudan gelen mesaj akışını temsil eder.
  • Yayıncılar (Publishers): Konuya mesaj oluşturan ve gönderen uygulamalar.
  • Aboneler (Subscribers): Abonelikten mesaj alan uygulama veya servisler.

Mesaj Akışı

  1. Yayıncı, bir konuya mesaj gönderir.
  2. Konuya bir veya birden fazla abonelik eklenir.
  3. Aboneler, aboneliklerinden mesajları pull (çekme) veya push (itme) yöntemiyle alır.
  4. Aboneler mesajı aldıktan sonra teslimat onayı verir.

Push: Mesajlar HTTP endpoint'ine otomatik gönderilir.
Pull: Abone uygulaması mesajı çekmek için istek yapar.

Güvenilirlik ve Ölçeklenebilirlik

Mesajlar birden fazla bölgede yedekli olarak saklanır ve en az bir kez teslimat garantisi vardır. Saniyede milyonlarca mesajı işleyecek şekilde otomatik ölçeklenir.

Google Pub Sub'ı Ayıran Temel Özellikler

  1. Tamamen Yönetilen & Sunucusuz: Sunucu veya küme yönetimi gerektirmez, otomatik ölçeklenir.
  2. Küresel Kullanılabilirlik: Bölge bağımsız çalışır, DR senaryoları için uygundur.
  3. Esnek Teslimat Modları: Push/pull seçenekleri ile fan-out modellerini destekler.
  4. Güvenlik & Uyum: Veri aktarımda ve depoda şifrelenir, IAM tabanlı erişim kontrolü sağlar.
  5. Sıralı Teslimat ve Tam Olarak Bir Kez İşleme: Anahtar başına mesaj sıralaması ve Dataflow entegrasyonu ile gelişmiş işleme.

Google Pub Sub Kurulumu: Adım Adım

1. Konu Oluşturma

gcloud pubsub topics create my-topic
Enter fullscreen mode Exit fullscreen mode

2. Abonelik Oluşturma

gcloud pubsub subscriptions create my-subscription --topic=my-topic
Enter fullscreen mode Exit fullscreen mode

3. Mesaj Yayınlama

gcloud pubsub topics publish my-topic --message="Hello, world!"
Enter fullscreen mode Exit fullscreen mode

4. Mesajları Çekme

gcloud pubsub subscriptions pull my-subscription --auto-ack
Enter fullscreen mode Exit fullscreen mode

Dilerseniz resmi istemci kütüphaneleri ile Java, Python, Node.js gibi dillerde de Pub/Sub işlemlerini kod tabanınıza entegre edebilirsiniz.

Python ile Mesaj Yayınlama ve Alma:

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)
Enter fullscreen mode Exit fullscreen mode

Google Pub Sub Gerçek Dünya Kullanım Durumları

  • Olay Odaklı Mikro Servisler: Servisler arası bağımlılığı azaltarak, olay tabanlı mimaride asenkron iletişim sağlar.
  • Analitik ve Günlük Verisi Alımı: Çoklu kaynaklardan BigQuery/Dataflow'a gerçek zamanlı veri akışı için alım katmanı olarak kullanılır.
  • IoT Veri Akışları: Binlerce IoT cihazı verisini Pub/Sub ile toplayıp, arka uçta işler.
  • Gerçek Zamanlı Bildirimler: Kullanıcıya bildirim göndermek veya panoları güncellemek için idealdir.
  • İş Akışı Orkestrasyonu: Dağıtık iş akışlarında süreçleri tetiklemek ve koordine etmek için kullanılır.

Google Pub Sub'ı API Odaklı Geliştirme ile Entegre Etme

Google Pub Sub ile entegre çalışan API'ler tasarlamak için Apidog gibi araçları kullanabilirsiniz. Apidog ile:

  • Pub/Sub ile etkileşen API uç noktalarını tasarlayabilir ve dokümante edebilirsiniz.
  • Geliştirme sırasında mesaj akışlarını simüle edebilirsiniz.
  • HTTP push endpoint'lerini test edebilir ve doğru veri işlediğini doğrulayabilirsiniz.

Apidog'u iş akışınıza entegre ederek, Pub/Sub ile çalışan API'lerinizi tasarlayabilir, taklit edebilir ve test edebilirsiniz.

Google Pub Sub Kullanımı İçin En İyi Uygulamalar

  1. Yapılandırılmış Mesaj Yükleri: JSON veya Protobuf gibi formatları tercih edin.
  2. İdempotent Aboneler: Yeniden teslim edilen mesajları zarif şekilde yönetin.
  3. İzleme ve Uyarı: Mesaj birikimi, teslimat gecikmesi gibi metrikleri izleyin.
  4. Erişim Kontrolü: IAM ile konu ve abonelik erişimini sıkı tutun.
  5. API-Öncelikli Geliştirme: Mesaj şemalarını ve API tanımlarını önceden belirleyip belgeleyin. Apidog bu süreçte ekibinizle uyumlu çalışmanızı kolaylaştırır.

Gelişmiş Özellikler: Sıralama, Filtreleme, Ölü Harf Konuları

  • Mesaj Sıralaması: Anahtar bazında sıralama ile, örneğin finansal işlemlerde sıranın korunmasını sağlayın.
  • Mesaj Filtreleme: Abonelik seviyesinde filtreleme ile sadece ilgili mesajları işleyin.
  • Ölü Harf Konuları: Teslim edilemeyen mesajlar için ölü harf konu yapılandırması yaparak sorunlu verileri izole edin.

Google Pub Sub Fiyatlandırması ve Sınırları

Fiyatlandırma; veri hacmine, mesaj boyutuna (10 MB'a kadar), throughput ve proje başına kaynak sayılarına bağlıdır. Cömert bir ücretsiz katman (ayda 10 GB) mevcuttur. Güncel bilgiler için mutlaka fiyatlandırma sayfasına bakın.

Pratik Örnek: Google Pub Sub ile Gerçek Zamanlı Analitik Pipeline

Bir web analitik platformunda, her sayfa görüntülenmesi ön uçtan bir Pub/Sub konusuna JSON olarak yayınlanır. Arka uç servis, bu konuya abone olur, olayları işler ve BigQuery'ye kaydeder.

İş Akışı:

  1. Frontend: pageviews konusuna JSON yükü gönderir.
  2. Pub/Sub: Mesajı analytics-service aboneliğine iletir.
  3. Backend: Mesajı çeker, işler ve BigQuery'ye yazar.
  4. Dashboard: BigQuery'den gerçek zamanlı metrikleri çeker.

Apidog ile bu API uç noktalarını tasarlayabilir, dokümante edebilir ve entegrasyon testlerini taklit yanıtlarla gerçekleştirebilirsiniz.

Sonuç: Modern Bulut Uygulamaları İçin Google Pub Sub'da Uzmanlaşmak

Google Pub Sub, modern olay tabanlı bulut mimarileri için temel bir bileşendir. Tamamen yönetilen, güvenli ve küresel altyapısı sayesinde hem gerçek zamanlı mesajlaşma hem de büyük veri ve mikro servis iletişimi için idealdir.

API tasarımı, iş akışı otomasyonu veya veri alımında; Google Pub Sub sistemlerinizi ayrıştırır ve inovasyonu hızlandırır. Apidog gibi güçlü API araçlarıyla entegre çalışmak, mesaj odaklı uygulamalarınızı daha sağlam, belgeli ve sürdürülebilir kılar.

Top comments (0)