Reset offset konsumen untuk mengonsumsi ulang pesan dari posisi sebelumnya atau offset partisi tertentu, atau lewati ke posisi terbaru guna melewati backlog pesan.
Prasyarat
Hentikan semua klien konsumen. ApsaraMQ for Kafka tidak mendukung pengaturan ulang offset untuk konsumen yang aktif.
Setelah Anda menghentikan klien konsumen, broker akan menganggapnya offline hanya setelah periode ConsumerConfig.SESSION_TIMEOUT_MS_CONFIG berlalu (default: 10.000 ms).
Informasi latar belakang
ApsaraMQ for Kafka mendukung metode pengaturan ulang berikut:
-
Mulai mengonsumsi dari offset terbaru: Mengatur ulang offset ke posisi terbaru, sehingga melewatkan semua backlog pesan.
-
Mulai mengonsumsi dari titik waktu tertentu: Mengatur ulang offset ke timestamp masa lalu berdasarkan waktu penyimpanan pesan. Selama pesan masih berada dalam periode retensi Kafka (default: 3 hari), memilih opsi ini menjamin bahwa semua pesan sejak timestamp yang ditentukan akan dikonsumsi ulang tanpa terlewat.
CatatanSebelum mengatur ulang offset, hentikan semua klien konsumen dan tunggu hingga periode
ConsumerConfig.SESSION_TIMEOUT_MS_CONFIG(default: 10.000 ms) berlalu. Hal ini memastikan broker mengenali semua konsumen sebagai offline sebelum pengaturan ulang diterapkan. -
Atur ulang offset konsumen berdasarkan partisi: Mengatur ulang offset hanya untuk partisi tertentu, sehingga menghindari konsumsi ulang pesan yang telah diproses dengan benar di partisi lain.
Operasi ini hanya mengubah offset konsumen dan tidak menghapus pesan backlog.
Prosedur
Masuk ke ApsaraMQ for Kafka console.
Pada halaman Overview, pilih wilayah di bagian Resource Distribution.
Pada halaman Instances, klik nama instans target.
Di panel navigasi kiri, klik Groups.
-
Pada halaman Groups, klik Group ID target.
-
Pada panel Reset Consumer Offset for Group, tinjau Prerequisites dan atur kebijakan pengaturan ulang.
-
Konfigurasikan Reset All Topics.
-
Klik Yes untuk mengatur ulang offset konsumen untuk semua topik.
-
Klik No dan masukkan nama topik yang akan diatur ulang di kotak teks Topic.
-
-
Konfigurasikan Reset Method.
-
Klik Reset Consumer Offset to Latest Offset, lalu klik OK.
-
Klik Reset Consumer Offset to Offset at Specified Point in Time. Di bidang Point in Time, klik ikon kalender
dan pilih waktu untuk memulai konsumsi. Lalu, klik OK. -
Klik Reset Consumer Offsets by Partition. Pada baris partisi target, masukkan offset awal di kotak teks Consumer Offset, lalu klik OK.
-
-
-
Pada kotak dialog Note, konfirmasi informasi tersebut dan klik OK.
FAQ
Apakah pengaturan ulang offset konsumen dapat mengatasi kegagalan konsumsi parsial pada topik?
Pengaturan ulang offset konsumen dapat membantu mengatasi beberapa kasus kegagalan konsumsi parsial pada topik. Namun, sebelum melanjutkan, selidiki apakah masalah tersebut disebabkan oleh rebalance yang terlalu sering atau penugasan partisi yang tidak normal.
-
Jika rebalance terjadi terlalu sering, periksa versi klien Kafka dan sesuaikan parameter
session.timeout.msdanmax.poll.interval.mske nilai yang sesuai dengan beban kerja konsumsi Anda. -
Pastikan kelompok konsumen telah berlangganan ke topik target dengan benar.
Jika akar masalah dipastikan sebagai penugasan partisi yang tidak normal, pengaturan ulang offset konsumen memungkinkan kelompok konsumen untuk mengonsumsi ulang pesan dari posisi yang benar.
Apakah saya dapat terus mengonsumsi setelah mengubah ID kelompok konsumen Kafka?
Ya. Setelah Anda mengubah ID kelompok konsumen, kelompok konsumen baru dapat terus mengonsumsi. Namun, offset awal tergantung pada apakah kelompok konsumen baru tersebut menjalankan konsumsi untuk pertama kali dan status saat ini dari topik. Sebelum mengganti ID kelompok konsumen, selidiki terlebih dahulu akar penyebab masalah apa pun, seperti gangguan jaringan atau timeout heartbeat, agar kelompok konsumen baru tidak mengalami masalah serupa.
Apakah menghapus kelompok konsumen Kafka juga akan menghapus topik yang telah berlangganan?
Tidak. Kelompok konsumen dan topik merupakan resource independen di ApsaraMQ for Kafka. Menghapus kelompok konsumen hanya menghapus kelompok konsumen dan offset konsumennya. Data dan konfigurasi topik yang telah berlangganan tidak terpengaruh.
Bagaimana cara kelompok konsumen tipe spark-kafka-source atau Lindorm-Spark mengirimkan offset konsumen?
-
spark-kafka-source: Jenis kelompok konsumen ini mendukung pengiriman offset konsumen ke Kafka. Anda dapat mengontrol pengiriman offset otomatis dengan mengatur parameter
enable.auto.commit. Atau, aturenable.auto.commitkefalsedan panggil fungsicommit(offsets)secara manual pada waktu yang tepat. -
Lindorm-Spark: Saat menggunakan Lindorm-Spark untuk mengonsumsi pesan Kafka, kirimkan offset secara manual. Atur
enable.auto.commitkefalsedan panggilcommit(offsets)setelah logika konsumsi selesai. Hal ini memastikan offset hanya dikirim setelah pemrosesan pesan selesai, mencegah loncatan offset atau alarm pemantauan palsu akibat pengiriman otomatis.
Dokumen terkait
-
Atur ulang offset konsumen secara terprogram dengan memanggil operasi API Reset offset konsumen kelompok konsumen.
-
Setelah pengaturan ulang, verifikasi offset konsumen yang diperbarui di Lihat status konsumsi.