Apa yang dimaksud dengan Pub/Sub?

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 dalam urutan 100 milidetik.

Pub/Sub digunakan untuk analisis streaming dan pipeline integrasi data untuk memuat dan mendistribusikan data. Alat ini sama efektifnya dengan middleware berorientasi pesan untuk integrasi layanan atau sebagai antrean untuk memparalelkan tugas.

Pub/Sub memungkinkan Anda membuat sistem produser dan konsumen peristiwa, yang disebut publishers dan subscriber. Penayang berkomunikasi dengan pelanggan secara asinkron dengan menyiarkan peristiwa, bukan dengan remote prosedur panggilan (RPC) sinkron.

Penayang mengirim peristiwa ke layanan Pub/Sub, tanpa memperhatikan bagaimana atau kapan peristiwa ini akan diproses. Pub/Sub kemudian mengirimkan peristiwa ke semua layanan yang bereaksi terhadapnya. 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 mulai menggunakan Pub/Sub, lihat Panduan memulai menggunakan Konsol Google Cloud. Untuk pengantar yang lebih komprehensif, lihat Membangun 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. Selanjutnya Anda dapat menggunakan alat stream processing, 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. Acara, baik yang mentah maupun yang diproses, dapat tersedia untuk beberapa aplikasi di seluruh tim dan organisasi Anda untuk pemrosesan secara 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 antar-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.
  • Alur kerja dan pemrosesan paralel. Anda dapat mendistribusikan banyak tugas secara efisien di antara beberapa pekerja 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 acara perusahaan. Anda dapat membuat bus berbagi data real-time di seluruh perusahaan, mendistribusikan acara bisnis, pembaruan database, dan peristiwa analisis di seluruh organisasi.
  • Streaming data dari aplikasi, layanan, atau perangkat IoT. Misalnya, aplikasi SaaS dapat memublikasikan feed peristiwa real-time. Atau, sensor perumahan dapat mengalirkan data ke Pub/Sub untuk digunakan dalam produk Google Cloud lainnya melalui pipeline pemrosesan data.
  • Memperbarui 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 pada Compute Engine di beberapa zona, tetapi tetap mengikuti topik umum. Jika layanan gagal di zona mana pun, layanan yang lain dapat mengambil beban secara otomatis.

Jenis layanan Pub/Sub

Pub/Sub terdiri dari dua layanan:

  • Layanan Pub/Sub. Layanan pesan ini adalah pilihan default bagi sebagian besar pengguna dan aplikasi. Solusi ini menawarkan keandalan tertinggi dan kumpulan integrasi terbesar, bersama dengan pengelolaan kapasitas otomatis. Pub/Sub mendukung replikasi sinkron semua data ke setidaknya dua zona dan replikasi dengan upaya terbaik ke zona tambahan ketiga.

  • Layanan Pub/Sub Lite. Layanan pesan terpisah tetapi serupa yang dibuat dengan biaya lebih rendah. Layanan ini menawarkan keandalan yang lebih rendah dibandingkan dengan Pub/Sub. Layanan ini menawarkan penyimpanan topik zona atau regional. Topik Zonal Lite hanya disimpan di satu zona. Topik Lite Regional mereplikasi data ke zona kedua secara asinkron. Selain itu, Pub/Sub Lite mengharuskan Anda melakukan pra-penyediaan serta mengelola kapasitas penyimpanan dan throughput. Pertimbangkan Pub/Sub Lite hanya untuk aplikasi yang mencapai biaya rendah karena adanya beberapa pekerjaan operasional tambahan dan keandalan yang lebih rendah.

Untuk mengetahui detail selengkapnya tentang perbedaan antara Pub/Sub dan Pub/Sub Lite, lihat Memilih Pub/Sub atau Pub/Sub Lite.

Membandingkan Pub/Sub dengan teknologi pesan lainnya

Pub/Sub menggabungkan skalabilitas horizontal Apache Kafka dan Pulsar dengan fitur yang ditemukan di middleware fitur pesan seperti Apache ActiveMQ dan RabbitMQ. Contoh fitur tersebut adalah pemfilteran dan antrean yang dihentikan pengirimannya.

Fitur lain yang diadopsi Pub/Sub dari middleware fitur pesan adalah paralelisme per pesan, bukan pengiriman pesan berbasis partisi. Pub/Sub "menyewa" pesan individual 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 pelanggan memproses pesan di setiap partisi secara berurutan dan membatasi jumlah klien serentak sesuai jumlah partisi. Pemrosesan per pesan memaksimalkan paralelisme aplikasi pelanggan, dan membantu memastikan independensi penayang dan pelanggan.

Membandingkan komunikasi Layanan-ke-layanan dan layanan-ke-klien

Pub/Sub ditujukan untuk komunikasi antarlayanan, bukan komunikasi dengan klien IoT atau pengguna akhir. Pola lainnya lebih didukung oleh produk lain:

Anda dapat menggunakan kombinasi layanan ini untuk membuat pola klien -> layanan -> database. Misalnya, lihat tutorial Pesan Pub/Sub Streaming melalui WebSockets.

Integrasi

Pub/Sub memiliki banyak integrasi dengan produk Google Cloud lainnya untuk membuat sistem pesan berfitur lengkap:

  • Pemrosesan streaming dan integrasi data. Didukung oleh Dataflow, termasuk template dan SQL Dataflow, yang memungkinkan pemrosesan dan integrasi data ke dalam 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 pada konsol Google Cloud. Tersedia juga integrasi dengan Apache Spark, khususnya saat dikelola dengan Dataproc. Komposisi visual pipeline integrasi dan pemrosesan yang berjalan di Spark + Dataproc dapat dilakukan dengan Data Fusion.
  • Pemantauan, Pemberitahuan, dan Logging. Didukung oleh produk Monitoring dan Logging.
  • Authentication dan IAM. Pub/Sub mengandalkan autentikasi OAuth standar yang digunakan oleh produk Google Cloud lainnya dan mendukung IAM terperinci, sehingga mengaktifkan 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 Workflow 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 Application Integration (Preview) yang merupakan solusi Integration-Platform-as-a-Service (iPaaS). Application Integration menyediakan pemicu Pub/Sub untuk memicu atau memulai integrasi.
  • Integrasi Konektor.(Pratinjau) connectors ini memungkinkan Anda terhubung ke berbagai sumber data. Dengan konektor, layanan Google Cloud dan aplikasi bisnis pihak ketiga terekspos ke integrasi Anda melalui antarmuka standar yang transparan. Untuk Pub/Sub, Anda dapat membuat koneksi Pub/Sub untuk digunakan dalam integrasi Anda.

Langkah berikutnya