Lewati ke konten utama

Percobaan ulang

Glasswall Halo terdiri dari beberapa layanan yang berkomunikasi menggunakan pesan asinkron alih-alih HTTP. Untuk layanan ini, kami telah mempertimbangkan bagaimana platform menangani kegagalan jika terjadi error saat memproses pesan.

API Sinkron dan API Asinkron

API berlangganan ke response queue dari Glasswall Engine, namun jika terjadi kegagalan, respons error akan dikembalikan ke klien http.

Layanan engine

Arsitekturnya adalah request/response menggunakan RabbitMQ reply-to queues. Ini berarti jika terjadi kegagalan, saat menangani sebuah pesan kami tetap mengirim pesan respons yang berisi alasan kegagalan.

Agregator laporan

Agregator laporan berperilaku sebagai konsumen pesan standar dan fungsionalitas tambahan diperkenalkan untuk memungkinkan percobaan ulang pesan. Dua opsi konfigurasi tersedia pada layanan ini.

Retrymessages adalah bool dengan nilai default true yang mengaktifkan fungsionalitas untuk mencoba ulang pesan. Jika dinonaktifkan, semua pesan yang gagal akan segera dimasukkan ke dead letter queue.

Messagettl adalah integer yang merepresentasikan jumlah detik sebuah pesan dapat berada di dalam queue. Ini untuk menghindari penumpukan pesan karena sebuah pesan yang gagal terus mencoba ulang tanpa batas. Ketika time to live sebuah pesan telah berakhir, pesan tersebut dimasukkan ke dead letter queue. nilai default pada kode adalah 30 detik.

Fungsionalitas agregator laporan tidak kritis bagi klien untuk menerima file mereka dan digunakan untuk menghasilkan data laporan teragregasi. Karena itu, dead lettering pada pesan agregator laporan tidak dianggap sebagai kegagalan kritis dan dead letter dapat ditoleransi (hanya dalam kasus yang ekstrem).