Dokumen ini memberikan informasi tentang penggunaan kontrol alur dengan pesan yang dipublikasikan ke topik.
Tentang kontrol alur
Klien penayang dapat mencoba memublikasikan pesan lebih cepat daripada kemampuan klien tersebut untuk mengirim data ke layanan Pub/Sub. Klien dibatasi oleh banyak faktor, termasuk:
- CPU, RAM, dan kapasitas jaringan komputer
- 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 frekuensi permintaan publikasi melebihi batas ini, permintaan akan terakumulasi dalam memori hingga gagal dengan error DEADLINE_EXCEEDED
. Hal ini terutama mungkin terjadi saat puluhan ribu pesan dipublikasikan dalam loop, yang 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. Rasio permintaan yang berhasil memberi tahu Anda
kapasitas throughput mesin klien, yang memberikan dasar pengukuran untuk mengonfigurasi kontrol
aliran.
Untuk mengurangi masalah rasio aliran, konfigurasikan klien penayang Anda dengan kontrol aliran untuk membatasi rasio permintaan publikasi. Anda dapat mengonfigurasi jumlah maksimum byte yang dialokasikan untuk permintaan yang tertunda, dan jumlah maksimum pesan yang tertunda yang diizinkan. Tetapkan batas ini sesuai dengan kapasitas throughput mesin klien Anda.
Sebelum memulai
Sebelum mengonfigurasi alur kerja publikasi, pastikan Anda telah menyelesaikan tugas-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
) pada 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 penayang 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 Java API 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.
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 Pub/Sub Ruby API.