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.
| Fitur | Cloud Tasks | Pub/Sub |
|---|---|---|
| Fokus kasus penggunaan | Memastikan eksekusi akhir tugas tertentu | Memastikan pengiriman pesan ke pelanggan yang dipisahkan |
| Kontrol utama | Konfigurasi percobaan ulang tingkat antrean dan tingkat tugas | Kebijakan percobaan ulang tingkat langganan dan DLQ |
| Menghentikan percobaan ulang | Upaya maksimum, durasi percobaan ulang maksimum | Konfirmasi pesan, masa berlaku pesan, atau transfer DLQ |
| Upaya maksimum | Dapat dikonfigurasi secara eksplisit | Secara tidak langsung melalui upaya pengiriman maksimum DLQ |
| Penyesuaian backoff | Backoff minimum/maksimum, penggandaan maksimum | Backoff minimum/maksimum untuk kebijakan backoff eksponensial |
| Percobaan ulang tanpa batas | Mungkin jika dikonfigurasi, tetapi dibatasi oleh batas retensi tugas maksimum | Default untuk pesan yang tidak terkonfirmasi hingga masa berlaku berakhir, dimitigasi oleh DLQ |
Langkah berikutnya
- Mengonfigurasi perutean, batas, dan percobaan ulang antrean
- Mengelola antrean dan tugas
- Menetapkan parameter percobaan ulang untuk tugas
- Penghapusan duplikat tugas