Saat terjadi akumulasi pesan, kesenjangan data, atau pembatasan kecepatan pada instans ApsaraMQ for Kafka, gunakan detail konsumen untuk mengidentifikasi akar penyebabnya. Detail konsumen menampilkan offset per partisi, klien yang terhubung, dan jumlah pesan terakumulasi untuk setiap pasangan topik-kelompok—titik data yang Anda butuhkan untuk mengidentifikasi konsumen yang macet atau lambat sebelum memengaruhi aplikasi Anda.
Sebelum memulai
Batasi setiap consumer group hingga tiga langganan topik atau kurang untuk mengurangi risiko akumulasi pesan.
Jika konsumen Anda menggunakan mode
assign(penugasan partisi manual), komit offset secara tepat waktu. Offset yang tidak dikomit akan menyebabkan pesan yang telah dikonsumsi tetap ditampilkan sebagai terakumulasi di Konsol, meskipun klien sebenarnya telah memprosesnya.Jika terdapat jumlah besar pesan yang terakumulasi, bandingkan laju konsumsi dengan laju produksi. Jika laju konsumsi lebih rendah, tingkatkan kapasitas konsumsi. Lihat Perbesar jumlah konsumen.
Lihat kelompok konsumen yang berlangganan ke suatu topik
Mulai dari halaman Topics untuk melihat kelompok konsumen mana saja yang berlangganan ke topik tertentu, lalu telusuri detail per partisinya.
Masuk ke Konsol ApsaraMQ for Kafka. Pada bagian Resource Distribution di halaman Overview, pilih wilayah tempat instance berada.
Pada halaman Instances, klik nama instans.
Di panel navigasi sebelah kiri, klik Topics.
Pada halaman Topics, klik nama topik.
Pada halaman Topic Details, klik tab Subscriptions. Semua kelompok konsumen yang berlangganan ke topik ini tercantum dalam bagian Online groups that subscribe to the topic.

Temukan kelompok tersebut dan klik Consumer Details di kolom Actions. Halaman Consumer Details menampilkan metrik per partisi untuk kelompok ini. Lihat Bidang detail konsumen untuk deskripsi bidang-bidang tersebut.

Lihat topik yang dilanggan oleh suatu kelompok konsumen
Mulai dari halaman Groups untuk melihat semua topik yang dilanggan oleh suatu kelompok konsumen beserta jumlah pesan terakumulasi untuk masing-masing topik.
Pada halaman Instances, klik nama instans.
Di panel navigasi sebelah kiri, klik Groups.
Pada halaman Groups, klik ID kelompok.
Pada halaman Group Details, klik tab Consumer Status. Semua topik yang dilanggan oleh kelompok ini tercantum, disertai jumlah pesan terakumulasi untuk masing-masing topik.

Temukan topik tersebut dan klik Consumer Details di kolom Actions. Halaman Consumer Details menampilkan metrik per partisi untuk pasangan kelompok-topik ini. Lihat Bidang detail konsumen untuk deskripsi bidang-bidang tersebut.

Bidang detail konsumen
| Field | Description |
|---|---|
| Partition ID | ID partisi. |
| Client | Identifikasi konsumen yang terhubung, dalam format <Client ID>_/<IP address>. Konsumen yang tidak terhubung tidak muncul di kolom ini. |
| Maximum Offset | Offset tertinggi yang tersedia untuk dikonsumsi di partisi ini. |
| Consumer Offset | Offset hingga batas mana kelompok konsumen telah mengkomit konsumsi di partisi ini. |
| Messages Accumulated | Jumlah pesan yang belum dikonsumsi di partisi ini, dihitung sebagai Maximum Offset dikurangi Consumer Offset. Peningkatan nilai ini secara terus-menerus biasanya menunjukkan bahwa konsumen terblokir atau laju konsumsi lebih rendah daripada laju produksi. Untuk opsi penanganan, lihat Reset consumer offsets. |
Interpretasi akumulasi pesan
Tidak semua akumulasi pesan menandakan adanya masalah. Gunakan pola berikut untuk menentukan apakah tindakan diperlukan:
| Yang Anda lihat | Artinya | Tindakan |
|---|---|---|
| Jumlah pesan terakumulasi berfluktuasi dalam rentang stabil, dan waktu konsumsi terbaru mendekati waktu saat ini. | Operasi normal. Kelompok konsumen aktif menarik pesan baru. | Tidak perlu tindakan. |
| Jumlah pesan terakumulasi terus meningkat, dan offset konsumen tidak berubah. | Thread konsumen terblokir. Klien berhenti mengonsumsi pesan dan tidak lagi mengkomit offset. | Selidiki aplikasi konsumen untuk thread yang terblokir atau deadlock. |
| Jumlah pesan terakumulasi terus meningkat, tetapi offset konsumen masih dikomit. | Kelompok konsumen sedang memproses pesan, tetapi laju konsumsi lebih rendah daripada laju produksi. | Tingkatkan kapasitas konsumsi. Lihat Perbesar jumlah konsumen. |
Perbesar jumlah konsumen
Jika akumulasi pesan terjadi karena laju konsumsi lebih rendah daripada laju produksi, tingkatkan kapasitas konsumsi dengan salah satu pendekatan berikut:
Tambahkan lebih banyak konsumen. Tambahkan instans konsumen dalam satu proses (satu thread per konsumen) atau sebarkan proses konsumen tambahan. Pastikan jumlah total konsumen tidak melebihi jumlah partisi—konsumen yang melebihi jumlah tersebut akan menganggur.
Tingkatkan jumlah thread konsumsi per konsumen. Untuk detail implementasi, lihat Tingkatkan laju konsumsi.
FAQ
Mengapa Konsol menampilkan pesan terakumulasi meskipun aplikasi saya mengonsumsi secara normal?
Hal ini biasanya terjadi ketika aplikasi Anda menggunakan mode assign untuk penugasan partisi manual. Dalam mode assign, Anda mengelola offset sendiri. Jika offset tidak dikomit kembali ke broker, Konsol akan melaporkan pesan sebagai terakumulasi meskipun klien sebenarnya telah memprosesnya. Komit offset secara tepat waktu untuk mengatasi ketidaksesuaian ini.
Apakah akumulasi pesan selalu menandakan adanya masalah?
Tidak. Jika jumlah pesan terakumulasi berfluktuasi dalam rentang yang dapat diprediksi dan waktu konsumsi terbaru mendekati waktu saat ini, kelompok konsumen dalam kondisi sehat dan aktif menarik pesan.
Akumulasi menjadi indikator masalah hanya jika jumlahnya terus meningkat seiring waktu. Dua penyebab umumnya adalah: thread konsumen terblokir (offset berhenti maju), atau laju konsumsi tidak mampu mengimbangi laju produksi (offset tetap maju tetapi jaraknya semakin melebar).
Informasi terkait
GetConsumerProgress — Ambil detail konsumen secara terprogram.
Atur ulang offset konsumen — Lewati Paket yang terakumulasi dengan mengatur ulang offset konsumen ke posisi tertentu.
Apa yang harus saya lakukan jika terjadi akumulasi pesan? — Panduan troubleshooting end-to-end untuk akumulasi pesan.