Memigrasikan pull queue ke Pub/Sub (Java)

Halaman ini menjelaskan cara memigrasikan kode pull queue dari Task Queue ke Pub/Sub. Pub/Sub kini merupakan cara yang lebih disukai untuk melakukan tugas pull queue di App Engine.

Jika aplikasi Anda menggunakan pull queue dan push queue, gunakan panduan ini untuk memigrasikan pull queue Anda ke Pub/Sub sebelum memigrasikan push queue ke Cloud Tasks layanan push queue baru. Sebaiknya jangan memigrasikan pull queue Anda setelah memigrasikan push queue ke Cloud Tasks karena penggunaan file queue.yaml yang diperlukan cenderung menyebabkan perilaku yang tidak terduga dengan Cloud Tasks.

Fitur yang saat ini tidak tersedia di Pub/Sub

Fitur Task Queue berikut saat ini tidak tersedia di Pub/Sub:

  • Pengelompokan berdasarkan tag
  • Penghapusan duplikat otomatis

Harga dan kuota

Memigrasikan pull queue ke Pub/Sub dapat memengaruhi harga dan kuota untuk aplikasi Anda.

Harga

Pub/Sub memiliki harga sendiri. Seperti halnya Task Queue, mengirim permintaan ke aplikasi App Engine dengan Pub/Sub dapat menyebabkan aplikasi Anda dikenakan biaya.

Kuota

Kuota Pub/Sub berbeda dari kuota untuk Task Queue. Seperti halnya Task Queue, mengirim permintaan ke aplikasi App Engine dari Pub/Sub dapat memengaruhi kuota permintaan App Engine Anda.

Sebelum bermigrasi

Bagian berikut membahas langkah-langkah penyiapan sebelum memigrasikan pull queue Anda ke Pub/Sub.

Mengaktifkan Pub/Sub API

Untuk mengaktifkan Pub/Sub API, klik Aktifkan di Pub/Sub API di Library API. Jika melihat tombol Kelola dan bukan tombol Aktifkan, berarti sebelumnya Anda telah mengaktifkan Pub/Sub API untuk project tersebut dan tidak perlu melakukan tindakan ini lagi.

Mengautentikasi aplikasi ke Pub/Sub API

Anda harus mengautentikasi aplikasi ke Pub/Sub API. Bagian ini membahas autentikasi untuk dua kasus penggunaan yang berbeda.

Untuk mengembangkan atau menguji aplikasi secara lokal, sebaiknya gunakan akun layanan. Untuk petunjuk tentang cara menyiapkan akun layanan dan menghubungkannya ke aplikasi Anda, baca Mendapatkan dan memberikan kredensial akun layanan secara manual.

Untuk men-deploy aplikasi di App Engine, Anda tidak perlu memberikan autentikasi baru. Kredensial Default Aplikasi (ADC) menyimpulkan detail autentikasi untuk aplikasi App Engine.

Mendownload Google Cloud CLI

Download dan instal Google Cloud CLI untuk menggunakan gcloud CLI dengan Pub/Sub API jika sebelumnya Anda belum menginstalnya. Jalankan perintah berikut dari terminal Anda jika Anda sudah menginstal Google Cloud CLI.

gcloud components update

Mengimpor Library Klien Cloud

Ikuti petunjuk Pub/Sub terkait cara menginstal library klien untuk menggunakan library klien dengan aplikasi Anda.

Pub/Sub dan pull queue

Perbandingan fitur

Pub/Sub mengirimkan tugas ke worker melalui hubungan penayang/pelanggan. Langganan pull di Pub/Sub menyerupai pull queue di Task Queue karena pelanggan mengambil pesan dari topik. Tabel di bawah ini mencantumkan fitur inti untuk pull queue di Task Queue dan fitur terkait untuk langganan pull di Pub/Sub.

Fitur Task Queue Fitur Pub/Sub
Antrean Topik
Tugas Pesan
Pekerja Pelanggan

Untuk mempelajari arsitektur Pub/Sub lebih lanjut, baca Cloud Pub/Sub: Layanan Pesan Berskala Google.

Perbandingan alur kerja

Di bawah ini adalah perbandingan alur kerja standar untuk pull queue di Task Queue dan langganan pull di Pub/Sub.

Alur kerja Task Queue Alur kerja Pub/Sub
Anda membuat pull queue Anda membuat topik dan membuat pelanggan Anda (yaitu worker) berlangganan ke topik tersebut
Anda membuat dan menambahkan tugas ke dalam antrean Anda membuat pesan dan memublikasikannya ke topik
Worker menyewakan tugas Pelanggan mengambil pesan dari topik
Worker memproses tugas Pelanggan memproses pesan
Worker menghapus tugas dari antrean Pelanggan mengonfirmasi pesan
Masa sewa berakhir Topik akan menghapus pesan saat semua pelanggannya telah mengonfirmasi pesan

Membuat langganan pull di Pub/Sub

Anda dapat menggunakan langganan pull Pub/Sub seperti pull queue Task Queue. Langganan suatu topik tidak akan habis masa berlakunya dan bisa ada secara bersamaan untuk beberapa worker. Artinya, pesan dapat diproses oleh lebih dari satu worker yang merupakan salah satu kasus penggunaan utama untuk Pub/Sub. Untuk membuat ulang pull queue Task Queue sebagai langganan pull Pub/Sub, buat topik untuk setiap worker dan pastikan hanya worker terkait saja yang berlangganan ke topik tersebut. Hal ini memastikan bahwa setiap pesan diproses oleh tepat satu worker seperti dalam Task Queue. Untuk mempelajari cara membuat dan mengelola langganan pull, baca mengelola topik dan langganan.

Menghapus pull queue

Setelah memigrasikan pull queue Task Queue ke langganan pull Pub/Sub, hapus pull queue dari Task Queue menggunakan file queue.yaml Anda. Sebaiknya hapus setiap pull queue sebelum memigrasikan yang berikutnya. Hal ini akan mencegah aplikasi menduplikasi tugas yang diterimanya dari langganan pull Pub/Sub baru saat Anda memigrasikan pull queue lainnya. Perlu diperhatikan bahwa dampak terhadap kuota deployment App Engine Anda bisa lebih signifikan apabila menghapus pull queue Task Queue satu per satu, dibandingkan dengan menghapus satu deployment.

Setelah menghapus semua pull queue dari Task Queue, Anda dapat menghapus file queue.yaml dari deployment aplikasi Anda di masa mendatang.

Jika aplikasi Anda hanya menggunakan pull queue, hapus semua referensi ke Task Queue API dalam kode Anda. Jika aplikasi menggunakan pull queue dan push queue, Anda dapat menghapus referensi ke Task Queue API yang ada di dalam file yang hanya menggunakan pull queue, atau menunggu hingga Anda memigrasikan push queue, lalu menghapus referensi ke Task Queue API dari semua file.

Langkah berikutnya