Topik ini menjelaskan kebijakan pengulangan dan antrian pesan gagal yang didukung oleh modul Integrasi Pesan.
Kebijakan Pengulangan
Kebijakan pengulangan menentukan metode untuk mengulang pesan yang gagal dikirim. Integrasi Pesan mendukung kebijakan pengulangan mundur dan pengulangan peluruhan eksponensial.
Pengulangan mundur: Pesan gagal dapat diulang hingga maksimal tiga kali. Interval antara dua pengulangan berturut-turut adalah nilai acak antara 10 hingga 20 detik. Ini merupakan kebijakan pengulangan default.
Pengulangan peluruhan eksponensial: Pesan gagal dapat diulang hingga maksimal 176 kali. Interval antara dua pengulangan berturut-turut meningkat secara eksponensial hingga maksimum 512 detik. Total waktu yang tersedia untuk pengulangan adalah satu hari. Interval spesifiknya adalah 1 detik, 2 detik, 4 detik, 8 detik, 16 detik, 32 detik, 64 detik, 128 detik, 256 detik, dan 512 detik. Nilai 512 detik digunakan untuk 167 pengulangan.
Kebijakan Toleransi Kesalahan
Kebijakan toleransi kesalahan menentukan cara menangani kesalahan. Integrasi Pesan mendukung kebijakan toleransi kesalahan berikut:
Toleransi kesalahan diizinkan: Mengizinkan toleransi kesalahan. Jika terjadi kesalahan, pemrosesan pesan tidak diblokir. Jika pesan gagal dikirim setelah jumlah maksimum pengulangan tercapai, pesan tersebut dikirim ke antrian pesan gagal atau dibuang.
Toleransi kesalahan dilarang: Tidak mengizinkan toleransi kesalahan. Jika terjadi kesalahan pada pesan dan pesan gagal dikirim setelah jumlah maksimum pengulangan tercapai, pemrosesan pesan diblokir. Dalam hal ini, status tugas secara otomatis berubah menjadi Ready.
Jika pengulangan tidak dapat dilakukan karena kesalahan seperti konfigurasi sumber daya yang tidak valid, status tugas secara otomatis berubah menjadi Startup Failed.
Antrian Pesan Gagal
Antrian pesan gagal berlaku dalam sebuah tugas. Jika pesan gagal diproses atau dikirim setelah jumlah maksimum pengulangan yang ditentukan oleh kebijakan pengulangan tercapai, data mentah dikirim ke antrian pesan gagal. Secara default, fitur antrian pesan gagal dinonaktifkan.
Antrian dalam ApsaraMQ for RocketMQ, Simple Message Queue (sebelumnya MNS), dan ApsaraMQ for Kafka, serta bus peristiwa dalam EventBridge dapat digunakan sebagai antrian pesan gagal.