Jika pesan di ApsaraMQ for RocketMQ tetap gagal dikonsumsi setelah jumlah maksimum percobaan ulang tercapai, pesan tersebut menjadi pesan gagal dan diteruskan ke antrian pesan gagal. Setelah menyelesaikan masalah, Anda dapat mengirim ulang pesan gagal untuk dikonsumsi. Jika tidak dapat memproses pesan gagal, Anda dapat mengekspor dan menyimpan pesan tersebut untuk mencegahnya dihapus setelah kedaluwarsa.
Informasi latar belakang
Ketika sebuah pesan gagal dikonsumsi, ApsaraMQ for RocketMQ secara otomatis mencoba ulang pesan tersebut. Jika pesan tetap gagal dikonsumsi setelah jumlah maksimum percobaan ulang tercapai, konsumen tidak dapat mengonsumsi pesan sesuai harapan. Dalam kasus ini, ApsaraMQ for RocketMQ mengirim pesan tersebut ke antrian khusus yang ditentukan untuk konsumen. Untuk informasi lebih lanjut, lihat Percobaan Ulang Pesan.
Di ApsaraMQ for RocketMQ, pesan yang tidak dapat dikonsumsi sesuai harapan disebut pesan gagal. Antrian yang digunakan untuk menyimpan pesan gagal disebut antrian pesan gagal.
Karakteristik
Pesan gagal memiliki karakteristik berikut:
Pesan gagal tidak lagi dapat dikonsumsi sesuai harapan oleh konsumen.
Secara default, masa berlaku pesan gagal adalah 3 hari, sama seperti masa berlaku pesan normal. Pesan gagal yang kedaluwarsa akan dihapus secara otomatis. Kami sarankan Anda menangani pesan gagal dalam waktu 3 hari setelah pesan tersebut dihasilkan.
Antrian pesan gagal memiliki karakteristik berikut:
Setiap antrian pesan gagal berkorespondensi dengan grup konsumen, bukan instansi konsumen.
Jika tidak ada pesan gagal yang dihasilkan dalam grup konsumen, ApsaraMQ for RocketMQ tidak membuat antrian pesan gagal untuk grup konsumen tersebut.
Antrian pesan gagal berisi semua pesan gagal yang dihasilkan dalam grup yang sesuai, tanpa memandang topik mana pesan tersebut termasuk.
Anda dapat mengkueri, mengekspor, dan mengirim ulang pesan gagal di konsol ApsaraMQ for RocketMQ.
Metode untuk mengkueri pesan gagal
Tabel berikut menjelaskan metode yang dapat Anda gunakan untuk mengkueri pesan gagal di ApsaraMQ for RocketMQ.
Metode | Kondisi | Tipe | Deskripsi |
Berdasarkan ID grup | ID Grup + Rentang waktu | Pencocokan rentang | Anda dapat menentukan ID grup dan rentang waktu, lalu mengambil semua pesan yang memenuhi kondisi dalam batch. Metode kueri ini memungkinkan Anda mengkueri sejumlah besar pesan menggunakan pencocokan kabur. |
Berdasarkan ID pesan | ID Grup + ID Pesan | Pencocokan tepat | Anda dapat menentukan ID grup dan ID pesan, lalu menemukan pesan menggunakan pencocokan tepat. |
Kueri pesan gagal
Masuk ke konsol ApsaraMQ for RocketMQ. Di panel navigasi sisi kiri, klik Instances.
Di bilah navigasi atas, pilih wilayah, seperti China (Hangzhou). Di halaman Instansi, klik nama instansi yang ingin Anda kelola.
Di panel navigasi sisi kiri, klik Dead-letter Queues. Di halaman Dead-letter Queues, gunakan salah satu metode berikut untuk mengkueri pesan gagal:
Query by Group ID
Anda dapat menentukan ID grup dan rentang waktu selama pesan gagal dihasilkan. Lalu, kueri semua pesan yang memenuhi kondisi.
CatatanWaktu pembuatan pesan gagal merujuk pada waktu ketika pesan dikirim ke antrian pesan gagal setelah jumlah maksimum percobaan ulang yang ditentukan untuk pesan tersebut tercapai.
Query by Message ID
Jika Anda mengkueri pesan berdasarkan ID pesan, pencocokan tepat digunakan. Anda dapat menentukan ID grup dan ID pesan untuk menemukan pesan yang ingin Anda kueri menggunakan pencocokan tepat.
Ekspor pesan gagal
Jika Anda tidak dapat memproses pesan gagal, Anda dapat mengekspor pesan tersebut di konsol ApsaraMQ for RocketMQ untuk mencegahnya dihapus setelah kedaluwarsa.
Konsol ApsaraMQ for RocketMQ memungkinkan Anda mengekspor satu pesan gagal atau beberapa pesan gagal sekaligus. File yang diekspor berada dalam format CSV.
Tabel berikut menjelaskan bidang dari pesan gagal yang diekspor.
Bidang | Deskripsi |
instanceId | ID dari instansi ApsaraMQ for RocketMQ. |
topic | Topik tempat pesan tersebut termasuk. |
msgId | ID pesan. |
bornHost | URL produser yang memproduksi pesan tersebut. |
bornTimestamp | Cap waktu yang menunjukkan kapan pesan tersebut diproduksi. |
storeTimestamp | Cap waktu yang menunjukkan kapan pesan tersebut disimpan ke broker ApsaraMQ for RocketMQ. |
reconsumeTimes | Jumlah kegagalan konsumsi. |
properties | Atribut pesan dalam format JSON. |
body | Tubuh pesan yang dikodekan dalam Base64. |
bodyCRC | Cyclic Redundancy Check (CRC) tubuh pesan. |
Ekspor satu pesan gagal
Di konsol ApsaraMQ for RocketMQ, temukan pesan gagal yang telah Anda kueri dan klik More di kolom Actions. Lalu, pilih Export Message dari daftar drop-down untuk mengekspor pesan gagal tersebut.
Ekspor beberapa pesan gagal sekaligus
Di konsol ApsaraMQ for RocketMQ, pilih pesan gagal yang telah Anda kueri berdasarkan ID grup dan klik Batch Export Messages untuk mengekspor pesan gagal tersebut.
Kirim ulang pesan gagal
Hanya pesan yang tidak dapat dikonsumsi sesuai harapan yang diteruskan ke antrian pesan gagal. Pesan gagal memerlukan penanganan khusus. Setelah menyelesaikan masalah, Anda dapat mengirim ulang pesan gagal tersebut untuk dikonsumsi di konsol ApsaraMQ for RocketMQ.
Jika pesan terurut dikirim ke antrian pesan gagal, Anda tidak dapat mengirim ulang pesan tersebut. Anda harus mengekspor pesan dari antrian pesan gagal dan memproses pesan tersebut.
Setelah pesan gagal dikirim ulang untuk dikonsumsi, pesan tersebut disimpan di antrian pesan gagal selama periode waktu tertentu. Sistem secara otomatis menghapus pesan tersebut setelah masa berlaku berakhir.
Kirim ulang satu pesan gagal
Di konsol ApsaraMQ for RocketMQ, temukan pesan gagal yang telah Anda kueri dan klik More di kolom Actions. Lalu, pilih Resend dari daftar drop-down untuk mengirim ulang pesan gagal tersebut.
Kirim ulang beberapa pesan gagal sekaligus
Di konsol ApsaraMQ for RocketMQ, pilih pesan gagal yang telah Anda kueri berdasarkan ID grup dan klik Batch Resend Messages untuk mengirim ulang pesan gagal tersebut.
Referensi
Untuk informasi tentang mekanisme kerja percobaan ulang pesan, lihat Percobaan Ulang Pesan.