Pub/Sub adalah layanan pesan asinkron dan skalabel yang memisahkan layanan yang menghasilkan pesan dari layanan yang memproses pesan tersebut.
Pub/Sub memungkinkan layanan berkomunikasi secara asinkron, dengan latensi yang biasanya berkisar 100 milidetik.
Pub/Sub digunakan untuk analisis streaming dan pipeline integrasi data untuk memuat dan mendistribusikan data. Middleware ini sama efektifnya dengan middleware berorientasi pesan untuk integrasi layanan atau sebagai antrean untuk melakukan tugas secara paralel.
Pub/Sub memungkinkan Anda membuat sistem produsen dan konsumen peristiwa, yang disebut penayang dan pelanggan. Penayang berkomunikasi dengan pelanggan secara asinkron dengan menyiarkan peristiwa, bukan dengan remote procedure call (RPC) sinkron.
Penayang mengirimkan peristiwa ke layanan Pub/Sub, tanpa memperhatikan cara atau waktu peristiwa ini akan diproses. Pub/Sub kemudian mengirimkan peristiwa ke semua layanan yang bereaksi terhadap peristiwa tersebut. Dalam sistem yang berkomunikasi melalui RPC, penayang harus menunggu pelanggan menerima data. Namun, integrasi asinkron di Pub/Sub meningkatkan fleksibilitas dan keandalan sistem secara keseluruhan.
Untuk memulai Pub/Sub, lihat Panduan memulai menggunakan Konsol Google Cloud. Untuk pengantar yang lebih komprehensif, lihat Mem-build sistem pesan Pub/Sub.
Kasus penggunaan umum
- Menyerap interaksi pengguna dan peristiwa server. Untuk menggunakan peristiwa interaksi pengguna dari aplikasi pengguna akhir atau peristiwa server dari sistem Anda, Anda dapat meneruskannya ke Pub/Sub. Kemudian, Anda dapat menggunakan alat pemrosesan streaming, seperti Dataflow, yang mengirimkan peristiwa ke database. Contoh database tersebut adalah BigQuery, Bigtable, dan Cloud Storage. Pub/Sub memungkinkan Anda mengumpulkan peristiwa dari banyak klien secara bersamaan.
- Distribusi peristiwa real-time. Peristiwa, mentah atau yang telah diproses, dapat disediakan untuk beberapa aplikasi di seluruh tim dan organisasi Anda untuk pemrosesan real-time. Pub/Sub mendukung "bus peristiwa perusahaan" dan pola desain aplikasi berbasis peristiwa. Pub/Sub memungkinkan Anda berintegrasi dengan banyak sistem yang mengekspor peristiwa ke Pub/Sub.
- Mereplikasi data di antara database. Pub/Sub biasanya digunakan untuk mendistribusikan peristiwa perubahan dari database. Peristiwa ini dapat digunakan untuk membuat tampilan status database dan histori status di BigQuery dan sistem penyimpanan data lainnya.
- Pemrosesan dan alur kerja paralel. Anda dapat mendistribusikan banyak tugas secara efisien di antara beberapa pekerja dengan menggunakan pesan Pub/Sub untuk berkomunikasi dengan pekerja. Contoh tugas tersebut adalah mengompresi file teks, mengirim notifikasi email, mengevaluasi model AI, dan memformat ulang gambar.
- Bus peristiwa Enterprise. Anda dapat membuat bus berbagi data real-time di seluruh perusahaan, yang mendistribusikan peristiwa bisnis, update database, dan peristiwa analisis di seluruh organisasi.
- Streaming data dari aplikasi, layanan, atau perangkat IoT. Misalnya, aplikasi SaaS dapat memublikasikan feed peristiwa secara real time. Atau, sensor perumahan dapat melakukan streaming data ke Pub/Sub untuk digunakan di produk Google Cloud lainnya melalui pipeline pemrosesan data.
- Memuat ulang cache terdistribusi. Misalnya, aplikasi dapat memublikasikan peristiwa pembatalan validasi untuk memperbarui ID objek yang telah berubah.
- Load balancing untuk keandalan. Misalnya, instance layanan dapat di-deploy di Compute Engine di beberapa zona, tetapi berlangganan topik yang sama. Jika layanan gagal di zona mana pun, zona lain dapat mengambil beban secara otomatis.
Membandingkan Pub/Sub dengan teknologi pesan lainnya
Pub/Sub menggabungkan skalabilitas horizontal Apache Kafka dan Pulsar dengan fitur yang ditemukan di middleware pesan seperti Apache ActiveMQ dan RabbitMQ. Contoh fitur tersebut adalah antrean pesan yang tidak terkirim dan pemfilteran.
Fitur lain yang diadopsi Pub/Sub dari middleware pesan adalah paralelisme per pesan, bukan pesan berbasis partisi. Pub/Sub "menyewakan" setiap pesan ke klien pelanggan, lalu melacak apakah pesan tertentu berhasil diproses.
Sebaliknya, sistem pesan lain yang skalabel secara horizontal menggunakan partisi untuk penskalaan horizontal. Hal ini memaksa subscriber untuk memproses pesan di setiap partisi secara berurutan dan membatasi jumlah klien serentak dengan jumlah partisi. Pemrosesan per pesan memaksimalkan paralelisme aplikasi pelanggan, dan membantu memastikan kebebasan penayang dan pelanggan.
Membandingkan komunikasi Layanan ke layanan dan layanan ke klien
Pub/Sub ditujukan untuk komunikasi layanan ke layanan, bukan komunikasi dengan pengguna akhir atau klien IoT. Pola lain lebih didukung oleh produk lain:
- Klien-server. Untuk mengirim pesan antara aplikasi seluler atau web dan layanan, gunakan produk yang menyertakan Firebase Realtime Database dan Firebase Cloud Messaging.
- Panggilan layanan asinkron. Gunakan Cloud Tasks.
Anda dapat menggunakan kombinasi layanan ini untuk membuat pola database klien -> layanan -> database. Misalnya, lihat tutorial Melakukan streaming pesan Pub/Sub melalui WebSockets.
Integrasi
Pub/Sub memiliki banyak integrasi dengan produk Google Cloud lainnya untuk membuat sistem pesan yang lengkap:
- Pemrosesan streaming dan integrasi data. Didukung oleh Dataflow, termasuk template dan SQL Dataflow, yang memungkinkan pemrosesan dan integrasi data ke BigQuery dan data lake di Cloud Storage. Template Dataflow untuk memindahkan data dari Pub/Sub ke Cloud Storage, BigQuery, dan produk lainnya tersedia di UI Pub/Sub dan Dataflow di konsol Google Cloud. Integrasi dengan Apache Spark, terutama jika dikelola dengan Dataproc, juga tersedia. Komposisi visual integrasi dan pipeline pemrosesan yang berjalan di Spark + Dataproc dapat dilakukan dengan Data Fusion.
- Pemantauan, Pemberitahuan, dan Logging. Didukung oleh produk Monitoring dan Logging.
- Autentikasi dan IAM. Pub/Sub mengandalkan autentikasi OAuth standar yang digunakan oleh produk Google Cloud lainnya dan mendukung IAM terperinci, yang memungkinkan kontrol akses untuk setiap resource.
- API. Pub/Sub menggunakan teknologi API layanan gRPC dan REST standar bersama dengan library klien untuk beberapa bahasa.
- Pemicu, notifikasi, dan webhook. Pub/Sub menawarkan pengiriman pesan berbasis push sebagai permintaan POST HTTP ke webhook. Anda dapat menerapkan otomatisasi alur kerja menggunakan Cloud Functions atau produk serverless lainnya.
- Orkestrasi. Pub/Sub dapat diintegrasikan ke dalam Alur Kerja serverless multi-langkah secara deklaratif. Big data dan orkestrasi analisis sering dilakukan dengan Cloud Composer, yang mendukung pemicu Pub/Sub. Anda juga dapat mengintegrasikan Pub/Sub dengan Integrasi Aplikasi (Pratinjau) yang merupakan solusi Integration Platform as a Service (iPaaS). Integrasi Aplikasi menyediakan pemicu Pub/Sub untuk memicu atau memulai integrasi.
- Integration Connectors.(Pratinjau) Konektor ini memungkinkan Anda terhubung ke berbagai sumber data. Dengan konektor, layanan Google Cloud dan aplikasi bisnis pihak ketiga ditampilkan ke integrasi Anda melalui antarmuka standar yang transparan. Untuk Pub/Sub, Anda dapat membuat koneksi Pub/Sub untuk digunakan dalam integrasi.
Langkah berikutnya
- Mulai dengan panduan memulai Pub/Sub.
- Baca dasar-dasar layanan Pub/Sub.
- Pelajari cara mem-build sistem pesan Pub/Sub.
- Pahami harga Pub/Sub.
- Memahami kuota dan batas untuk Pub/Sub.
- Baca catatan rilis Pub/Sub.
- Pelajari data engineering dengan layanan Google Cloud di Qwiklabs.