Google Pub Sub, yang secara resmi dikenal sebagai Google Cloud Pub/Sub, adalah layanan pesan real-time yang dikelola sepenuhnya, dirancang untuk memungkinkan komunikasi asinkron antara aplikasi dan layanan independen. Intinya, Google Pub Sub memfasilitasi de-kopling sistem dengan menyediakan model publish-subscribe yang andal, terukur, dan global untuk arsitektur berbasis peristiwa (event-driven). Ini menjadikannya blok bangunan penting untuk aplikasi berbasis cloud modern, mendukung penyerapan dan distribusi peristiwa dalam skala besar.
Baik Anda merancang microservices, membangun pipeline analitik, atau mengintegrasikan sistem terdistribusi, memahami Google Pub Sub sangat penting bagi siapa pun yang terlibat dalam pengembangan cloud-native.
Cara Kerja Google Pub Sub: Konsep Utama dan Arsitektur
Pada dasarnya, Google Pub Sub beroperasi berdasarkan paradigma pesan publish-subscribe (pub/sub). Model ini memungkinkan satu layanan (publisher) untuk mengirim pesan ke topic, dan layanan lain (subscriber) untuk menerima pesan tersebut secara asinkron.
Komponen Inti Google Pub Sub
- Topics: Sumber daya bernama tempat pesan dikirim oleh penerbit.
- Subscriptions: Merepresentasikan aliran pesan dari topik tertentu, dikirimkan kepada pelanggan.
- Publishers: Aplikasi yang membuat dan mengirim (memublikasikan) pesan ke topik.
- Subscribers: Aplikasi atau layanan yang menerima pesan dari langganan yang terhubung ke topik.
Alur Pesan
1. Publisher mengirim pesan ke topik.
2. Satu atau lebih langganan terhubung ke topik.
3. Subscriber menarik (pull) atau menerima (push) pesan dari langganan mereka.
4. Pesan diakui oleh subscriber untuk memastikan pengiriman setidaknya sekali.
Google Pub Sub mendukung pengiriman push dan pull:
- Pull: Aplikasi subscriber secara eksplisit meminta (menarik) pesan dari langganan.
- Push: Google Pub Sub mendorong pesan ke endpoint yang telah dikonfigurasi sebelumnya (biasanya server HTTP).
Keandalan dan Skalabilitas
Google Pub Sub menjamin pengiriman setidaknya sekali, menyimpan pesan secara redundan di berbagai zona. Ini secara otomatis berskala untuk menangani jutaan pesan per detik, yang sangat penting untuk skenario big data, analitik, dan IoT.
Fitur Utama yang Membedakan Google Pub Sub
1. Dikelola Sepenuhnya dan Tanpa Server (Serverless)
Tidak perlu mengelola server, kluster, atau partisi. Google Pub Sub secara otomatis berskala, menangani ketersediaan, dan memastikan ketahanan di balik layar.
2. Ketersediaan Global
Dirancang untuk beroperasi di berbagai wilayah, menjadikannya ideal untuk aplikasi global dan skenario pemulihan bencana.
3. Mode Pengiriman Fleksibel
Pilih antara opsi pengiriman push dan pull agar sesuai dengan arsitektur Anda. Pola fan-out (satu-ke-banyak) didukung secara native.
4. Keamanan dan Kepatuhan
Semua data dienkripsi saat dalam perjalanan dan saat istirahat. Akses dikontrol melalui kebijakan IAM (Identity and Access Management), memastikan hanya layanan yang berwenang yang dapat berinteraksi dengan topik dan langganan.
5. Pengiriman Berurutan dan Pemrosesan Tepat Satu Kali
Pengurutan pesan opsional per kunci dan integrasi dengan Dataflow memungkinkan semantik pemrosesan tepat satu kali untuk kasus penggunaan tingkat lanjut.
Menyiapkan Google Pub Sub: Panduan Langkah demi Langkah
Mari kita telusuri proses penyiapan dan penggunaan Google Pub Sub dalam proyek cloud yang umum.
1. Buat Topik
gcloud pubsub topics create my-topic
2. Buat Langganan
gcloud pubsub subscriptions create my-subscription --topic=my-topic
3. Publikasikan Pesan
gcloud pubsub topics publish my-topic --message="Hello, world!"
4. Tarik Pesan
gcloud pubsub subscriptions pull my-subscription --auto-ack
Sebagai alternatif, Anda dapat menggunakan pustaka klien Google Cloud Pub/Sub untuk Java, Python, Node.js, dan bahasa pemrograman lainnya untuk mengintegrasikan Pub/Sub dengan codebase Anda.
Contoh: Memublikasikan dan Menerima Pesan (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"Diterima: {message.data}")
message.ack()subscriber.subscribe(subscription_path, callback=callback)
Kasus Penggunaan Dunia Nyata untuk Google Pub Sub
1. Microservices Berbasis Peristiwa (Event-Driven)
Microservices seringkali perlu berkomunikasi secara asinkron. Google Pub Sub memungkinkan layanan untuk memancarkan peristiwa tanpa mengetahui sistem mana yang akan mengonsumsinya, mengurangi kopling dan meningkatkan skalabilitas.
2. Menelan Data Analitik dan Log
Streaming log dan peristiwa analitik dari berbagai sumber ke BigQuery, Dataflow, atau platform analitik lainnya menjadi lancar dengan Pub/Sub sebagai lapisan penyerapan.
3. Aliran Data IoT
Ribuan atau jutaan perangkat IoT dapat memublikasikan data sensor ke topik Pub/Sub, dengan layanan backend memproses data secara real-time.
4. Notifikasi Real-Time
Aplikasi dapat menggunakan Google Pub Sub untuk mengirim notifikasi real-time kepada pengguna, memperbarui dasbor, atau memicu alur kerja berdasarkan peristiwa yang masuk.
5. Orkestrasi Alur Kerja
Alur kerja yang kompleks di seluruh sistem terdistribusi dapat menggunakan Pub/Sub untuk memicu proses dan mengoordinasikan langkah-langkah tanpa ketergantungan yang erat.
Mengintegrasikan Google Pub Sub dengan Pengembangan Berbasis API
Merancang API yang kuat yang berinteraksi dengan Google Pub Sub adalah persyaratan umum. Di sinilah alat seperti Apidog menjadi sangat berharga. Apidog memungkinkan pengembang untuk:
- Merancang dan mendokumentasikan API yang memublikasikan atau berlangganan topik Pub/Sub.
- Membuat mock endpoint Pub/Sub untuk mensimulasikan aliran pesan selama pengembangan.
- Menguji endpoint push HTTP yang menerima pesan dari Pub/Sub, memastikan mereka menangani data yang masuk dengan benar.
Dengan mengintegrasikan Apidog ke dalam alur kerja Anda, Anda dapat merancang, membuat mock, dan menguji API yang berinteraksi dengan Google Pub Sub, merampingkan pengembangan Anda dan mempercepat waktu produksi.
Praktik Terbaik untuk Menggunakan Google Pub Sub
1. Payload Pesan Terstruktur
Selalu gunakan format data terstruktur seperti JSON atau Protobuf untuk payload pesan guna memastikan interoperabilitas dan kemudahan parsing.
2. Subscriber Idempoten
Rancang subscriber untuk menangani pesan duplikat dengan anggun, karena pengiriman setidaknya sekali dapat mengakibatkan percobaan ulang.
3. Memantau dan Memberi Peringatan
Manfaatkan Google Cloud Monitoring untuk melacak metrik Pub/Sub—seperti backlog pesan, latensi pengiriman, dan tingkat kesalahan—untuk memastikan kesehatan sistem.
4. Kontrol Akses
Gunakan peran IAM untuk mengontrol ketat siapa yang dapat memublikasikan dan berlangganan topik Anda. Batasi izin hingga seminimal mungkin.
5. Pengembangan API-First
Definisikan API Pub/Sub dan skema pesan Anda di awal. Apidog dapat membantu Anda mendokumentasikan dan membagikan definisi ini di seluruh tim Anda, memastikan konsistensi dan mengurangi kesalahan.
Fitur Lanjutan: Pengurutan, Pemfilteran, dan Topik Pesan Gagal (Dead-Letter Topics)
Pengurutan Pesan
Untuk kasus penggunaan yang memerlukan urutan ketat (misalnya, transaksi keuangan), Google Pub Sub memungkinkan pengurutan berdasarkan kunci, memastikan bahwa semua pesan dengan kunci yang sama dikirimkan secara berurutan.
Pemfilteran Pesan
Langganan dapat memfilter pesan berdasarkan atribut, memastikan subscriber hanya menerima data yang relevan, mengurangi overhead pemrosesan.
Topik Pesan Gagal (Dead-Letter Topics)
Konfigurasi topik pesan gagal (dead-letter topics) untuk menangani pesan yang tidak dapat dikirim, memungkinkan Anda mengisolasi data bermasalah untuk inspeksi atau pemrosesan ulang nanti.
Harga dan Batasan Google Pub Sub
Harga Google Pub Sub didasarkan pada volume data yang diserap atau dikirim, dengan tingkatan gratis yang murah hati (misalnya, hingga 10 GB per bulan). Ada juga kuota pada ukuran pesan (hingga 10 MB), throughput, dan jumlah topik/langganan per proyek. Selalu tinjau halaman harga Google Cloud Pub/Sub terbaru untuk detailnya.
Contoh Praktis: Membangun Pipeline Analitik Real-Time dengan Google Pub Sub
Misalkan Anda sedang membangun platform analitik web. Setiap peristiwa tampilan halaman dipublikasikan ke topik Pub/Sub oleh aplikasi frontend Anda. Layanan backend berlangganan topik ini, memproses peristiwa, dan menyimpan data teragregasi di BigQuery.
Alur Kerja:
1. Frontend: Memublikasikan payload JSON ke topik pageviews.
2. Pub/Sub: Mengirimkan peristiwa ke langganan analytics-service.
3. Subscriber Backend: Menarik pesan, memprosesnya, dan menulis ke BigQuery.
4. Dasbor Analitik: Mengkueri BigQuery untuk metrik real-time.
Dengan menggunakan Apidog, Anda dapat merancang dan mendokumentasikan endpoint API yang menangani pemublikasian dan penerimaan peristiwa ini, serta respons mock untuk pengujian integrasi frontend dan backend.
Kesimpulan: Menguasai Google Pub Sub untuk Aplikasi Cloud Modern
Google Pub Sub adalah landasan arsitektur cloud berbasis peristiwa (event-driven) dan skalabel. Desainnya yang dikelola sepenuhnya, global, dan aman menjadikannya solusi utama untuk pesan real-time, penyerapan big data, dan komunikasi microservices.
Baik Anda merancang API, mengorkestrasi alur kerja, atau membangun pipeline analitik, Google Pub Sub memberdayakan Anda untuk melepaskan ketergantungan sistem Anda dan mempercepat inovasi. Memadukan Pub/Sub dengan alat API canggih seperti Apidog memastikan aplikasi berbasis pesan Anda kuat, terdokumentasi dengan baik, dan mudah dipelihara.
