全部产品
Search
文档中心

ApsaraMQ for Kafka:Mengapa jumlah pesan yang diakumulasikan dilaporkan oleh peringatan berbeda dengan yang ditampilkan di konsol?

更新时间:Jun 28, 2025

Topik ini menjelaskan alasan mengapa jumlah pesan yang diakumulasikan dilaporkan oleh peringatan berbeda dengan yang ditampilkan di konsol ApsaraMQ for Kafka.

Deskripsi

Jumlah pesan yang diakumulasikan dilaporkan oleh peringatan berbeda dengan yang ditampilkan di konsol ApsaraMQ for Kafka.

image

Penyebab yang mungkin

Penyebab 1

Masalah ini dapat disebabkan oleh metode yang digunakan untuk menghitung jumlah pesan yang diakumulasikan dalam partisi (Offset maksimum dari partisi - Offset konsumen dari partisi) dan jumlah total pesan yang diakumulasikan (jumlah total pesan yang diakumulasikan di semua partisi).

Sebagai contoh, terdapat m grup konsumen dan n topik pada instance ApsaraMQ for Kafka, dan setiap grup konsumen berlangganan ke semua topik. Saat menghitung jumlah pesan yang diakumulasikan untuk sebuah grup konsumen, Anda dapat menggunakan salah satu dari dua metode berikut:

  • Permintaan Umum

    Dalam metode ini, permintaan panggilan prosedur jarak jauh (RPC) diluncurkan untuk mendapatkan offset konsumen dari grup konsumen, kemudian permintaan RPC lain diluncurkan untuk mendapatkan offset maksimum dari partisi dalam topik yang dilanggan. Metode ini menghasilkan setidaknya m × n × Jumlah broker permintaan RPC, yang secara signifikan mempengaruhi efisiensi perhitungan sistem pemantauan.

  • Permintaan Batch

    Dalam metode ini, permintaan RPC diluncurkan untuk mendapatkan offset konsumen dari semua grup konsumen, kemudian permintaan RPC lain diluncurkan untuk mendapatkan offset maksimum dari partisi dalam semua topik yang dilanggan secara batch. Metode ini mengurangi jumlah permintaan RPC dari m × n × Jumlah broker menjadi hanya jumlah broker. Karena karakteristik permintaan batch, ada latensi antara waktu saat offset konsumen dari grup konsumen diperoleh dan waktu saat offset maksimum dari partisi diperoleh. Selama periode latensi, offset maksimum dari partisi dapat terus bertambah seiring dengan pengiriman pesan. Akibatnya, ada perbedaan antara waktu saat offset konsumen dari grup konsumen diperoleh dan waktu saat offset maksimum dari partisi diperoleh, menyebabkan kesalahan saat menghitung jumlah pesan yang diakumulasikan.

Jumlah total pesan yang diakumulasikan yang ditampilkan di halaman Group Details di konsol ApsaraMQ for Kafka diperoleh dengan meminta secara terpisah offset konsumen dari grup konsumen saat ini dan offset maksimum dari partisi dalam topik yang dilanggan. Karena selisih waktu antara dua permintaan RPC tersebut kecil, kesalahan antara jumlah pesan yang diakumulasikan yang ditampilkan dan jumlah pesan yang diakumulasikan sebenarnya juga kecil. Jumlah pesan yang diakumulasikan yang ditampilkan dalam peringatan diperoleh menggunakan metode permintaan batch. Karena perbedaan antara waktu saat offset konsumen dari grup konsumen diperoleh dan waktu saat offset maksimum dari partisi diperoleh, kesalahan terjadi saat menghitung jumlah pesan yang diakumulasikan. Akibatnya, jumlah pesan yang diakumulasikan dilaporkan oleh peringatan berbeda dengan yang ditampilkan di konsol ApsaraMQ for Kafka.

Penyebab 2

Jika laju konsumsi pesan terlalu rendah dan penggunaan disk terlalu tinggi dalam sebuah instance, pesan dalam instance tersebut mungkin dihapus sebelum dikonsumsi. Akibatnya, offset konsumen dari beberapa partisi mungkin lebih kecil dari offset minimum. Open source Apache Kafka dan ApsaraMQ for Kafka menggunakan metode yang berbeda untuk menangani masalah ini.

  • Open Source Apache Kafka

    Saat menghitung jumlah pesan yang diakumulasikan, sistem secara otomatis mengabaikan pesan yang diakumulasikan yang dihasilkan dalam situasi ini.

  • ApsaraMQ for Kafka

    Sistem mengirimkan peringatan akumulasi pesan untuk memberi tahu Anda tentang masalah ini berdasarkan kebijakan pemantauan dan peringatan. Anda dapat menangani masalah ini sesuai dengan kebutuhan bisnis Anda.

Untuk membantu Anda membedakan antara partisi abnormal dan partisi normal, jumlah total pesan yang diakumulasikan yang ditampilkan di halaman Group Details di konsol ApsaraMQ for Kafka tidak termasuk pesan yang diakumulasikan dalam topik abnormal. Oleh karena itu, jumlah pesan yang diakumulasikan dalam peringatan lebih besar daripada yang ditampilkan di konsol.

Catatan
  • Jika Anda ingin mengabaikan peringatan akumulasi pesan untuk topik yang dilanggan oleh grup konsumen, Anda dapat mengatur ulang offset konsumen dari grup konsumen ke 0 di konsol ApsaraMQ for Kafka. Dengan cara ini, ApsaraMQ for Kafka tidak akan lagi menghasilkan peringatan untuk akumulasi pesan dalam topik tersebut. Untuk informasi tentang cara mengatur ulang offset konsumen, lihat Atur Ulang Offset Konsumen.

  • Jika Anda ingin menonaktifkan sementara fitur peringatan akumulasi pesan, ajukan tiket.

Berikut adalah fenomena yang terkait dengan penyebab ini:

  • Jumlah total pesan yang diakumulasikan yang ditampilkan di konsol berbeda dengan yang dilaporkan oleh peringatan.

    image

  • Jumlah total pesan yang diakumulasikan yang ditampilkan di konsol tidak termasuk pesan yang diakumulasikan dalam topik abnormal.

    image

  • Jumlah total pesan yang diakumulasikan yang ditampilkan di konsol tidak termasuk pesan yang diakumulasikan yang dihasilkan dalam kasus di mana offset konsumen dari partisi lebih kecil dari offset minimum.

    image