Saat menggunakan ApsaraMQ for Kafka, akumulasi pesan dapat terjadi dalam sebuah grup. Topik ini menjelaskan cara menentukan apakah akumulasi pesan normal dan bagaimana menangani akumulasi pesan yang abnormal.
Proses konsumsi pada klien
Untuk memahami apakah ada akumulasi pesan, Anda perlu memahami bagaimana pesan dikonsumsi pada klien. Gambar berikut menggambarkan proses konsumsi.
Tentukan apakah akumulasi pesan normal
Jika akumulasi pesan terjadi dalam sebuah grup, ikuti langkah-langkah berikut untuk menentukan apakah akumulasi tersebut normal:
Masuk ke Konsol ApsaraMQ for Kafka.
Cara menangani akumulasi pesan yang abnormal
Setelah Anda mengonfirmasi bahwa akumulasi pesan yang abnormal ada berdasarkan operasi sebelumnya, Anda dapat mencetak durasi konsumsi pesan atau memeriksa eksekusi thread berdasarkan informasi stack. Anda dapat menggunakan metode berikut untuk meningkatkan laju konsumsi pesan guna mencegah akumulasi pesan yang abnormal:
Tambah jumlah konsumen. Anda dapat menambah konsumen dalam suatu proses dan memastikan bahwa setiap konsumen sesuai dengan satu thread. Atau, Anda dapat menerapkan beberapa proses konsumen. Jika jumlah konsumen melebihi jumlah partisi, laju konsumsi tidak dapat ditingkatkan. Sebaliknya, konsumen tertentu menjadi idle.
Tambah jumlah thread konsumsi. Untuk informasi lebih lanjut, lihat bagian "Tingkatkan laju konsumsi" dari topik Praktik terbaik untuk konsumen.
Anda dapat menjalankan perintah jstack untuk menanyakan informasi stack tentang thread Java.
Jika pesan terakumulasi dan status konsumen abnormal di Konsol ApsaraMQ for Kafka, rebalances mungkin telah terjadi. Selama rebalances, pesan tidak dikonsumsi. Dalam kasus ini, pesan terakumulasi karena sejumlah besar klien terhubung ke atau memutuskan koneksi dari ApsaraMQ for Kafka. Untuk informasi lebih lanjut, lihat Mengapa rebalances sering terjadi pada klien konsumen saya?
Referensi
Untuk informasi tentang jstack, lihat jstack - Stack Trace.
Untuk informasi tentang pertanyaan umum lainnya (FAQ), lihat FAQ.