Halaman ini menjelaskan cara menerima pesan dari langganan Lite. Anda dapat menerima pesan dengan library klien Pub/Sub Lite untuk Java.
Langganan Lite menghubungkan topik Lite ke aplikasi pelanggan; pelanggan menerima pesan dari langganan Lite. Pelanggan menerima setiap pesan yang dikirim aplikasi penayang ke topik Lite, termasuk pesan yang dikirim penayang sebelum Anda membuat langganan Lite.
Sebelum menerima pesan dari langganan Lite, buat topik Lite, buat langganan Lite ke topik Lite, dan publikasikan pesan ke topik Lite.
Menerima pesan
Untuk menerima pesan dari langganan Lite, minta pesan dari langganan Lite. Library klien akan otomatis terhubung ke partisi dalam topik Lite yang dilampirkan ke langganan Lite. Jika lebih dari satu klien subscriber dibuat instance-nya, pesan akan didistribusikan ke semua klien. Jumlah partisi dalam topik menentukan jumlah maksimum klien pelanggan yang dapat terhubung secara bersamaan ke langganan.
Pelanggan mungkin memerlukan waktu hingga satu menit untuk melakukan inisialisasi dan mulai menerima pesan. Setelah inisialisasi, pesan diterima dengan latensi minimal.
Contoh berikut menunjukkan cara menerima pesan dari langganan Lite:
gcloud
Perintah ini memerlukan Python 3.6 atau yang lebih baru, dan memerlukan paket Python gRPCio untuk diinstal. Untuk pengguna MacOS, Linux, dan Cloud Shell, jalankan:
sudo pip3 install grpcio
export CLOUDSDK_PYTHON_SITEPACKAGES=1
Untuk menerima pesan, gunakan perintah gcloud pubsub lite-subscriptions subscribe:
gcloud pubsub lite-subscriptions subscribe SUBSCRIPTION_ID \
--location=LITE_LOCATION \
--auto-ack
Ganti kode berikut:
- SUBSCRIPTION_ID: ID langganan Lite
- LITE_LOCATION: lokasi langganan Lite
Go
Sebelum menjalankan contoh ini, ikuti petunjuk penyiapan Go di Library Klien Pub/Sub Lite.
Java
Sebelum menjalankan contoh ini, ikuti petunjuk penyiapan Java di Library Klien Pub/Sub Lite.
Python
Sebelum menjalankan contoh ini, ikuti petunjuk penyiapan Python di Library Klien Pub/Sub Lite.
Library klien membuat koneksi streaming dua arah ke setiap partisi dalam topik Lite.
Pelanggan meminta koneksi ke partisi.
Layanan Pub/Sub Lite mengirimkan pesan ke pelanggan.
Setelah memproses pesan, pelanggan harus mengonfirmasi pesan. Library klien memproses dan mengonfirmasi pesan secara asinkron dalam callback. Untuk membatasi jumlah pesan yang tidak dikonfirmasi yang dapat disimpan pelanggan dalam memori, konfigurasi setelan kontrol alur.
Jika beberapa subscriber menerima pesan dari langganan Lite yang sama, layanan Pub/Sub Lite akan menghubungkan setiap subscriber ke proporsi partisi yang sama. Misalnya, jika dua pelanggan menggunakan langganan Lite yang sama dan langganan Lite dilampirkan ke topik Lite dengan dua partisi, setiap pelanggan akan menerima pesan dari salah satu partisi.
Mengonfirmasi pesan
Untuk mengonfirmasi pesan, kirim konfirmasi ke langganan Lite.
Go
Untuk mengirim konfirmasi, gunakan metode Message.Ack()
.
Java
Untuk mengirim konfirmasi, gunakan
metode
AckReplyConsumer.ack()
.
Python
Untuk mengirim konfirmasi, gunakan metode Message.ack()
.
Pelanggan harus mengonfirmasi setiap pesan. Pelanggan akan menerima pesan terlama yang belum direspons terlebih dahulu, diikuti dengan setiap pesan berikutnya. Jika pelanggan melewati satu pesan, mengonfirmasi pesan berikutnya, lalu terhubung kembali, pelanggan akan menerima pesan yang tidak dikonfirmasi dan setiap pesan berikutnya yang dikonfirmasi.
Langganan Lite tidak memiliki batas waktu konfirmasi dan layanan Pub/Sub Lite tidak mengirim ulang pesan yang tidak dikonfirmasi melalui koneksi streaming terbuka.
Menggunakan kontrol alur
Setelah layanan Pub/Sub Lite mengirimkan pesan kepada pelanggan, pelanggan akan menyimpan pesan yang tidak terkonfirmasi di memori. Anda dapat membatasi jumlah pesan yang belum selesai yang dapat disimpan pelanggan dalam memori menggunakan setelan kontrol aliran. Setelan kontrol alur berlaku untuk setiap partisi tempat subscriber menerima pesan.
Anda dapat mengonfigurasi setelan kontrol alur berikut:
- Ukuran pesan yang luar biasa. Ukuran maksimum, dalam byte, dari pesan yang belum terkirim. Ukuran maksimum harus lebih besar dari ukuran pesan terbesar.
- Jumlah pesan. Jumlah maksimum pesan yang belum terkirim.
Ukuran pesan ada di
kolom size_bytes
.
Anda dapat mengonfigurasi setelan kontrol alur dengan library klien.
Go
Untuk mengonfigurasi setelan kontrol alur, teruskan ReceiveSettings
saat memanggil pscompat.NewSubscriberClientWithSettings
. Anda dapat menetapkan parameter berikut di ReceiveSettings
:
MaxOutstandingMessages
MaxOutstandingBytes
Sebagai contoh, lihat contoh kontrol alur ini.
Java
Untuk mengonfigurasi setelan kontrol alur, gunakan metode berikut di
class
FlowControlRequest.Builder
:
Python
Untuk mengonfigurasi setelan kontrol alur, tetapkan parameter berikut di
class
FlowControlSettings
:
bytes_outstanding
messages_outstanding
Misalnya, jika jumlah maksimum pesan adalah 100 dan pelanggan terhubung ke 10 partisi, pelanggan tidak dapat menerima lebih dari 100 pesan dari salah satu dari 10 partisi. Jumlah total pesan yang belum terkirim mungkin lebih besar dari 100, tetapi pelanggan tidak dapat menyimpan lebih dari 100 pesan dari setiap partisi.