Memilih Cloud Tasks atau Pub/Sub

Cloud Tasks dan Pub/Sub dapat digunakan untuk menerapkan penerusan pesan dan integrasi asinkron, tetapi meskipun berfungsi dengan cara yang serupa, keduanya tidak identik. Panduan ini membantu Anda memilih produk yang tepat untuk kasus penggunaan Anda.

Perbedaan utama

Pub/Sub dan Cloud Tasks terutama berbeda dalam hal apakah keduanya menggunakan pemanggilan implisit atau eksplisit.

Pub/Sub memisahkan penayang peristiwa dari pelanggan. Penayang tidak perlu mengetahui apa pun tentang pelanggan. Oleh karena itu, Pub/Sub tidak menawarkan kontrol atas pengiriman pesan selain menjaminnya. Hal ini mendukung pemanggilan implisit: penayang memicu eksekusi pelanggan hanya dengan memublikasikan peristiwa.

Sebaliknya, Cloud Tasks bertujuan untuk pemanggilan eksplisit. Penayang mempertahankan kontrol penuh atas eksekusi. Secara khusus, penayang menentukan endpoint tempat setiap pesan akan dikirim.

Selain itu, Cloud Tasks menyediakan alat untuk pengelolaan antrean dan tugas yang tidak tersedia untuk penayang Pub/Sub, termasuk:

  • Penjadwalan pengiriman tertentu
  • Kontrol kecepatan pengiriman
  • Percobaan ulang yang dapat dikonfigurasi secara akurat
  • Akses dan pengelolaan tugas individual dalam antrean
  • Penghapusan duplikat pembuatan tugas

Perbandingan fitur mendetail

Fitur Cloud Tasks Pub/Sub
Push menggunakan webhook Ya Ya
Jaminan pengiriman minimal satu kali Ya Ya
Percobaan ulang yang dapat dikonfigurasi Ya Ya
Penghapusan duplikat pembuatan tugas/pesan Ya Tidak
Pengiriman terjadwal Ya Tidak
Pengiriman yang diurutkan Tidak, urutan tugas yang diantrekan dipertahankan berdasarkan upaya terbaik Ya, dengan kunci pengurutan
Kontrol kecepatan eksplisit Ya Klien pelanggan pull dapat menerapkan kontrol aliran
Pull menggunakan API Tidak Ya
Penyisipan batch Ya Ya
Beberapa pengendali/pelanggan per pesan Tidak Ya
Retensi tugas/pesan 31 hari Hingga 31 hari
Ukuran maksimum tugas/pesan 1MB 10MB
Kecepatan pengiriman maksimum 500 QPS/antrean Tidak ada batas atas, tunduk pada kuota throughput regional
Ketersediaan geografis Regional Global
Durasi pemrosesan pengendali/pelanggan push maksimum 30 menit (HTTP)
10 menit (penskalaan otomatis Standar App Engine)
24 jam (penskalaan manual atau dasar Standar App Engine)
60 menit (Fleksibel App Engine)
10 menit untuk operasi push
Jumlah antrean/langganan 1.000 per project per region, lebih banyak tersedia melalui permintaan penambahan kuota 10.000 per project

Perbedaan percobaan ulang yang dapat dikonfigurasi

Cloud Tasks menawarkan kontrol yang akurat atas percobaan ulang tugas, termasuk batas yang tegas pada upaya dan durasi. Pub/Sub berfokus pada pengiriman yang andal, menggunakan backoff eksponensial dan antrean pesan yang tidak terkirim (DLQ) untuk mengelola percobaan ulang pesan yang tidak terkonfirmasi.

FiturCloud Tasks Pub/Sub
Fokus kasus penggunaanMemastikan eksekusi akhir tugas tertentu Memastikan pengiriman pesan ke pelanggan yang dipisahkan
Kontrol utamaKonfigurasi percobaan ulang tingkat antrean dan tingkat tugas Kebijakan percobaan ulang tingkat langganan dan DLQ
Menghentikan percobaan ulangUpaya maksimum, durasi percobaan ulang maksimum Konfirmasi pesan, masa berlaku pesan, atau transfer DLQ
Upaya maksimumDapat dikonfigurasi secara eksplisit Secara tidak langsung melalui upaya pengiriman maksimum DLQ
Penyesuaian backoffBackoff minimum/maksimum, penggandaan maksimum Backoff minimum/maksimum untuk kebijakan backoff eksponensial
Percobaan ulang tanpa batasMungkin jika dikonfigurasi, tetapi dibatasi oleh batas retensi tugas maksimum Default untuk pesan yang tidak terkonfirmasi hingga masa berlaku berakhir, dimitigasi oleh DLQ

Langkah berikutnya