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 akan menerima pesan dari langganan Lite. Pelanggan menerima setiap pesan yang dikirim aplikasi penayang ke topik Lite, termasuk pesan yang dikirim penerbit 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 pelanggan dibuat instance-nya, pesan akan didistribusikan ke semua klien. Jumlah partisi dalam topik menentukan jumlah maksimum klien pelanggan yang dapat terhubung ke sebuah langganan secara bersamaan.
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 harus menginstal paket Python grpcio. 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 dalam callback secara asinkron. Untuk membatasi jumlah pesan yang tidak dikonfirmasi yang dapat disimpan pelanggan di memori, konfigurasikan setelan kontrol alur.
Jika beberapa pelanggan menerima pesan dari langganan Lite yang sama, layanan Pub/Sub Lite akan menghubungkan setiap pelanggan ke proporsi partisi yang sama. Misalnya, jika dua pelanggan menggunakan langganan Lite yang sama dan langganan Lite terkait dengan 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 menerima pesan terlama yang tidak dikonfirmasi terlebih dahulu, diikuti dengan setiap pesan berikutnya. Jika pelanggan melewati satu pesan, mengonfirmasi pesan berikutnya, lalu terhubung kembali, pelanggan akan menerima pesan yang tidak terkonfirmasi 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 dikonfirmasi di memori. Anda dapat membatasi jumlah pesan belum terselesaikan yang dapat disimpan pelanggan di memori menggunakan setelan kontrol alur. Setelan kontrol alur berlaku untuk setiap partisi tempat pelanggan menerima pesan.
Anda dapat mengonfigurasi setelan kontrol alur berikut:
- Ukuran pesan yang melebihi batas. Ukuran maksimum pesan yang belum terselesaikan, dalam byte. 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 dalam
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 10 partisi tersebut. Jumlah total pesan yang belum terselesaikan mungkin lebih dari 100, tetapi pelanggan tidak dapat menyimpan lebih dari 100 pesan dari setiap partisi.