Mengatur ulang offset konsumen mengubah offset awal konsumsi pesan. Jika terjadi kesalahan atau jika pesan dikonsumsi secara tidak benar, Anda dapat mengatur ulang offset konsumen untuk memutar balik konsumsi ke offset tertentu atau mengonsumsi ulang pesan dari partisi tertentu. Anda juga dapat menyesuaikan offset ke nilai terbaru dan sementara meninggalkan pesan yang terakumulasi tanpa ditangani.
Informasi Latar Belakang
ApsaraMQ for RocketMQ menggunakan offset konsumen untuk melacak kemajuan konsumen. ApsaraMQ for RocketMQ tidak langsung menghapus pesan setelah dikonsumsi, tetapi menyimpan catatan pesan terakhir yang dikonsumsi oleh grup konsumen, yang disebut sebagai offset konsumen.
Jika klien di-restart, konsumen dapat melanjutkan pemrosesan pesan berdasarkan offset konsumen yang tersimpan di broker.
Jika terjadi pengecualian selama konsumsi atau jika pesan tidak dikonsumsi dari offset yang diharapkan, Anda dapat mengatur ulang offset konsumen untuk menyesuaikan kemajuan konsumen.
ApsaraMQ for RocketMQ menyediakan beberapa metode untuk mengatur ulang offset konsumen:
Start Consumption from Latest Offset
Konsumen melewati semua pesan yang terakumulasi dan mulai mengonsumsi pesan terbaru yang dikirim setelah pengaturan ulang offset konsumen.
Start Consumption from Offset Corresponding to Specified Point in Time
Konsumen memulai konsumsi dari pesan yang sesuai dengan titik waktu reset, terlepas dari apakah pesan tersebut telah dikonsumsi sebelumnya.
Rentang waktu valid adalah antara waktu produksi pesan pertama yang disimpan dalam topik hingga waktu produksi pesan terakhir yang disimpan dalam topik.
Broker akan menyesuaikan offset konsumen ke offset yang paling dekat dengan titik waktu yang dipilih.
Skenario
Keterlambatan konsumen: Jika konsumen tidak dapat mengimbangi laju produksi pesan, pesan dapat terakumulasi. Untuk pesan yang tidak kritis, Anda dapat menyesuaikan offset konsumen ke nilai lebih besar untuk melewati pesan-pesan ini dan mengurangi beban kerja hilir.
Pelacakan balik bisnis dan pemrosesan korektif: Untuk mengonsumsi ulang pesan yang salah dikonsumsi karena kesalahan bisnis, Anda dapat menyesuaikan offset konsumen ke nilai lebih kecil.
Catatan Penggunaan
Pengaturan ulang offset konsumen hanya memengaruhi offset konsumen dari grup yang ditentukan. Offset konsumen grup lain yang berlangganan ke topik tidak terpengaruh.
Pengaturan ulang offset konsumen tidak didukung dalam mode konsumsi siaran.
ApsaraMQ for RocketMQ hanya mendukung pengaturan ulang offset konsumen untuk grup yang dibuat menggunakan protokol TCP.
Pengaturan ulang offset konsumen hanya berlaku untuk pesan yang terlihat oleh konsumen.
Pengaturan ulang offset konsumen hanya dapat dilakukan ketika konsumen terhubung ke broker ApsaraMQ for RocketMQ.
Prosedur
Masuk ke Konsol ApsaraMQ for RocketMQ. Di panel navigasi kiri, klik Instances.
Di bilah navigasi atas, pilih wilayah seperti China (Hangzhou). Pada halaman Instans, klik nama instans yang ingin Anda kelola.
Di panel navigasi kiri, klik Groups. Pada halaman yang muncul, klik tab TCP.
Temukan grup yang ingin Anda atur ulang offset konsumennya, klik More di kolom Actions, lalu pilih Reset Consumer Offset.
Di panel Atur Ulang Offset Konsumen, pilih metode reset sesuai kebutuhan bisnis Anda dan klik OK.
PeringatanJika Anda memilih Start Consumption from Latest Offset, semua pesan yang terakumulasi dari grup dihapus dalam topik yang ditentukan. Operasi ini berlaku setelah sekitar 2 hingga 3 menit. Jangan ulangi operasi ini. Sebelum operasi reset berlaku, semua konsumen dalam aplikasi berhenti mengonsumsi pesan. Jika bisnis Anda sensitif terhadap latensi, lanjutkan dengan hati-hati.
Jika Anda memilih Start Consumption from Latest Offset, konsumen dari grup melewati semua pesan yang terakumulasi dalam topik dan mulai mengonsumsi dari offset terbaru.
Jika Anda memilih Start Consumption from Offset Corresponding to Specified Point in Time, pemilih waktu muncul. Setelah Anda memilih titik waktu dari pemilih waktu, konsumen mengonsumsi pesan yang dikirim setelah titik waktu yang dipilih, terlepas dari apakah pesan tersebut sebelumnya telah dikonsumsi.
Di pesan Note, klik OK.
Tanya Jawab Umum
Apa yang harus saya lakukan jika gagal mengatur ulang offset konsumen menggunakan dua metode sebelumnya?
Periksa apakah mode konsumsi klustering digunakan. Pengaturan ulang offset konsumen tidak didukung dalam mode konsumsi siaran.
Periksa apakah konsumen saat ini terhubung ke broker ApsaraMQ for RocketMQ. Pengaturan ulang offset konsumen hanya dapat dilakukan untuk konsumen yang terhubung ke broker ApsaraMQ for RocketMQ.
Periksa versi SDK. Masalah ini mungkin terjadi karena versi SDK sudah usang. Kami sarankan Anda memperbarui SDK ke versi terbaru. Misalnya, versi SDK klien TCP untuk Java harus 1.8.0.Final atau lebih baru. Untuk informasi lebih lanjut, lihat Catatan Rilis.
Mengapa pesan yang terakumulasi tertentu tetap dikirim setelah saya mengatur ulang offset konsumen untuk melewati pesan yang terakumulasi?
Fitur pengaturan ulang offset konsumen tidak berlaku untuk pesan yang sedang dicoba ulang. Oleh karena itu, sejumlah kecil pesan masih dikirim setelah Anda mengatur ulang offset konsumen.
Apa pesan paling awal yang dapat dikonsumsi oleh konsumen dengan mengatur ulang offset konsumen?
Jika Anda memilih Mulai Konsumsi dari Offset yang Sesuai dengan Titik Waktu Tertentu, waktu paling awal yang dapat Anda pilih adalah waktu ketika pesan pertama disimpan dalam topik. ApsaraMQ for RocketMQ instans 4.x memungkinkan Anda menyimpan pesan hingga tiga hari. Pesan yang disimpan lebih dari tiga hari secara otomatis dihapus.
Oleh karena itu, pesan paling awal yang dapat dikonsumsi oleh konsumen dengan mengatur ulang offset konsumen adalah pesan yang disimpan dalam topik tiga hari sebelum titik waktu saat ini.
Referensi
ApsaraMQ for RocketMQ juga memungkinkan Anda mengatur ulang offset konsumen dengan memanggil operasi API berikut: