Dokumen ini memberikan informasi tentang penggunaan kontrol alur dengan pesan yang dipublikasikan ke topik.
Tentang kontrol alur
Klien penerbit dapat mencoba memublikasikan pesan lebih cepat daripada kemampuan klien tersebut dalam mengirim data ke layanan Pub/Sub. Klien dibatasi oleh banyak faktor, termasuk:
- CPU, RAM, dan kapasitas jaringan mesin
- Setelan jaringan, seperti jumlah permintaan yang belum selesai dan bandwidth yang tersedia
- Latensi setiap permintaan publikasi, yang sebagian besar ditentukan oleh koneksi jaringan antara layanan Pub/Sub, klien, dan Google Cloud
Jika kecepatan permintaan publikasi melebihi batas ini, permintaan akan terakumulasi dalam memori hingga gagal dengan error DEADLINE_EXCEEDED
. Hal ini terutama mungkin terjadi
ketika puluhan ribu pesan dipublikasikan dalam loop, sehingga menghasilkan ribuan
permintaan dalam milidetik.
Anda dapat mendiagnosis masalah ini dengan memeriksa metrik sisi server di Monitoring. Anda tidak akan dapat melihat permintaan yang gagal dengan DEADLINE_EXCEEDED
, hanya permintaan yang berhasil. Tingkat permintaan yang berhasil memberi tahu Anda kapasitas throughput mesin klien, sehingga memberikan dasar untuk mengonfigurasi kontrol alur.
Untuk mengurangi masalah kecepatan alur, konfigurasi klien penayang Anda dengan kontrol alur untuk membatasi kecepatan permintaan publikasi. Anda dapat mengonfigurasi jumlah maksimum byte yang dialokasikan untuk permintaan yang belum selesai, dan jumlah maksimum pesan yang belum selesai yang diizinkan. Tetapkan batas ini sesuai dengan kapasitas throughput mesin klien Anda.
Sebelum memulai
Sebelum mengonfigurasi alur kerja publikasi, pastikan Anda telah menyelesaikan tugas berikut:
- Pelajari topik dan alur kerja publikasi.
- Buat topik.
Peran yang diperlukan
Untuk mendapatkan izin yang diperlukan guna menggunakan kontrol alur, minta administrator untuk memberi Anda peran IAM Pub/Sub Publisher (roles/pubsub.publisher
) di topik Anda.
Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat Mengelola akses ke project, folder, dan organisasi.
Anda mungkin juga bisa mendapatkan izin yang diperlukan melalui peran khusus atau peran bawaan lainnya.
Anda memerlukan izin tambahan untuk membuat atau memperbarui topik dan langganan.
Menggunakan kontrol alur dengan pesan
Kontrol alur penerbit tersedia menggunakan library klien Pub/Sub dalam bahasa berikut:
C++
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan C++ di Panduan memulai: Menggunakan Library Klien. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi Pub/Sub C++ API.
Go
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Go di Panduan memulai: Menggunakan Library Klien. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi Pub/Sub Go API.
Java
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Java di Panduan memulai: Menggunakan Library Klien. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi Pub/Sub Java API.
Node.js
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Node.js di Panduan memulai: Menggunakan Library Klien. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi API Node.js Pub/Sub.
Node.js
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Node.js di Panduan memulai: Menggunakan Library Klien. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi API Node.js Pub/Sub.
Python
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Python di Panduan memulai: Menggunakan Library Klien. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi Pub/Sub Python API.
Ruby
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Ruby di Panduan memulai: Menggunakan Library Klien. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi API Ruby Pub/Sub.