All Products
Search
Document Center

ApsaraMQ for Kafka:Lihat detail rebalance

Last Updated:Jun 28, 2025

Jika rebalance terjadi pada klien konsumen, Anda dapat melihat detailnya seperti waktu mulai, durasi, dan penyebab rebalance. Anda juga dapat memeriksa jumlah rebalance yang terjadi serta apakah konsumen ditambahkan ke grup konsumen setelah rebalance.

Informasi latar belakang

Di ApsaraMQ for Kafka, rebalance adalah proses pemetaan ulang partisi ke grup konsumen. Rebalance dapat dipicu pada klien konsumen karena alasan berikut:

  • Konsumen menambahkan atau menghapus langganan dari grup konsumen.

  • Jumlah partisi dalam topik berubah.

  • Jumlah konsumen dalam grup konsumen bertambah atau berkurang.

    • Tanggapan konsumsi lambat menyebabkan heartbeat timeout. Untuk menyaring konsumen dengan heartbeat timeout, rebalance dipicu.

    • Tidak ada pesan yang ditarik setelah waktu yang ditentukan oleh parameter max.poll.interval.ms berlalu. Hal ini menyebabkan klien terputus dari antrian dan memicu rebalance. Nilai default parameter max.poll.interval.ms adalah 5 menit.

    • Jumlah konsumen dalam grup konsumen terlalu besar. Untuk menghemat sumber daya topik dan partisi, beberapa konsumen perlu dimatikan, yang memicu rebalance.

    • Jumlah konsumen dalam grup konsumen tidak mencukupi, menyebabkan penundaan pesan di topik dan partisi. Untuk mencegah penundaan, sejumlah konsumen tertentu harus ditambahkan, yang memicu rebalance.

Prosedur

  1. Masuk ke konsol ApsaraMQ for Kafka. Di panel navigasi sebelah kiri, klik Instances.

  2. Di bilah navigasi atas, pilih wilayah tempat instance yang ingin Anda kelola berada. Pada halaman Instances, klik nama instance yang ingin Anda kelola.

  3. Di panel navigasi sebelah kiri, klik Groups. Pada halaman yang muncul, temukan grup yang ingin Anda kelola dan klik nama grup tersebut.

  4. Pada halaman Group Details, klik tab Rebalance Details.

Mengapa rebalance sering terjadi pada klien?

Penyebab yang mungkin

Masalah ini dapat terjadi karena alasan berikut:

  • Untuk klien versi lebih awal dari 0.10.2: Konsumen tidak memiliki thread terpisah untuk mengirim pesan heartbeat. Pesan heartbeat dikirim menggunakan antarmuka poll. Jika tanggapan konsumsi macet, permintaan pengiriman pesan heartbeat timeout, sehingga memicu rebalance.

  • Untuk klien versi 0.10.2 dan yang lebih baru: Tidak ada pesan yang ditarik setelah waktu yang ditentukan oleh parameter max.poll.interval.ms berlalu. Hal ini menyebabkan klien terputus dari antrian pesan dan memicu rebalance. Nilai default parameter max.poll.interval.ms adalah 5 menit.

Solusi

Anda harus memahami parameter berikut:

  • session.timeout.ms: Menentukan periode timeout untuk permintaan pengiriman pesan heartbeat. Anda dapat menentukan nilai kustom berdasarkan kebutuhan bisnis Anda.

  • max.poll.records: Menentukan jumlah maksimum pesan yang dikembalikan untuk setiap poll.

  • Untuk klien versi lebih awal dari 0.10.2: Pesan heartbeat dikirim menggunakan antarmuka poll. Konsumen tidak memiliki thread terpisah untuk mengirim pesan heartbeat.

  • Untuk klien versi 0.10.2 dan yang lebih baru: Anda dapat menyetel parameter max.poll.interval.ms untuk mencegah klien tidak mengonsumsi pesan dalam waktu lama.

  1. Item berikut memberikan referensi untuk menyetel nilai parameter:

    • session.timeout.ms: Untuk klien versi lebih awal dari 0.10.2, atur nilai lebih besar dari waktu yang dibutuhkan untuk mengonsumsi satu batch pesan tetapi lebih kecil dari 30 detik. Kami merekomendasikan nilai 25 detik. Untuk klien versi 0.10.2 dan yang lebih baru, pertahankan nilai default 10 detik.

    • max.poll.records: Atur nilai jauh lebih kecil dari jumlah pesan yang dikonsumsi per thread per detik dikalikan dengan jumlah thread dikalikan dengan nilai parameter max.poll.interval.ms.

    • max.poll.interval.ms: Atur nilai lebih besar dari nilai max.poll.records dibagi dengan hasil kali jumlah pesan yang dikonsumsi per thread per detik dikalikan dengan jumlah thread.

  2. Tingkatkan kecepatan konsumsi klien dan alokasikan thread terpisah untuk memproses logika konsumsi.

  3. Kurangi jumlah topik yang dilanggan oleh grup menjadi tidak lebih dari lima. Kami merekomendasikan satu grup hanya berlangganan satu topik.

  4. Tingkatkan klien ke versi 0.10.2 atau yang lebih baru.