Apa yang dimaksud dengan antrean surat mati?

Antrean surat mati (DLQ) adalah jenis antrean pesan khusus yang untuk sementara menyimpan pesan yang tidak dapat diproses oleh sistem perangkat lunak karena adanya kesalahan. Antrean pesan adalah komponen perangkat lunak yang mendukung komunikasi asinkron dalam sistem yang terdistribusi. Antrean tersebut mengizinkan Anda mengirim pesan antar layanan perangkat lunak pada volume berapa pun dan tidak mengharuskan penerima pesan untuk selalu tersedia. Antrean surat mati secara khusus menyimpan pesan yang salah, yang tidak memiliki tujuan atau yang tidak dapat diproses oleh penerima yang dituju.

Mengapa antrean surat mati penting?

Antrean surat mati (DLQ) ada di samping antrean pesan reguler. DLQ bertindak sebagai penyimpanan sementara untuk pesan yang salah dan gagal. DLQ mencegah antrean sumber dipenuhi pesan yang belum diproses.

Misalnya, pikirkan perangkat lunak yang memiliki antrean pesan reguler dan DLQ. Perangkat lunak ini menggunakan antrean reguler untuk menyimpan pesan yang direncanakan untuk dikirim ke tujuan. Jika penerima gagal merespons atau memproses pesan yang dikirim, perangkat lunak memindahkannya ke antrean surat mati.

Ada dua potensi penyebab yang memindahkan pesan ke jalur DLQ: konten pesan yang salah dan perubahan dalam sistem penerima.

Konten pesan yang salah

Sebuah pesan akan pindah ke DLQ jika pesan yang dikirimkan adalah pesan yang salah. Kondisi perangkat keras, perangkat lunak, dan jaringan mungkin merusak data yang dikirim. Misalnya, gangguan perangkat keras agak mengubah beberapa informasi selama transmisi. Kerusakan data yang tidak terduga dapat menyebabkan penerima menolak atau mengabaikan pesan.

Perubahan dalam sistem penerima

Sebuah pesan mungkin juga pindah ke DLQ jika perangkat lunak penerima telah mengalami perubahan dan pengirim tidak menyadarinya. Misalnya, Anda dapat mencoba memperbarui informasi pelanggan dengan mengirim pesan untuk CUST_ID_005. Namun, penerima bisa gagal dalam memproses pesan masuk karena pelanggan telah dihapus dari basis data sistem.

Apa saja keuntungan antrean surat mati?

Selanjutnya, kita berbicara tentang keuntungan antrean surat mati (DLQ).

Mengurangi biaya komunikasi

Antrean pesan reguler atau standar tetap memproses pesan hingga periode retensi berakhir. Hal ini membantu memastikan pemrosesan pesan berkelanjutan dan meminimalkan kemungkinan antrean Anda diblokir.

Namun, jika sistem Anda memproses ribuan pesan, pesan kesalahan dalam jumlah besar akan meningkatkan biaya overhead komunikasi dan membebani sistem komunikasi. Alih-alih mencoba memproses pesan yang gagal hingga kedaluwarsa, lebih baik memindahkannya ke antrean surat mati setelah beberapa upaya pemrosesan. 

Memperbaiki pemecahan masalah

Jika Anda memindahkan pesan yang salah ke DLQ, developer Anda akan dapat fokus dalam mengidentifikasi penyebab kesalahan. Mereka dapat menyelidiki alasan penerima tidak dapat memproses pesan, menerapkan perbaikan, dan melakukan upaya baru untuk mengirimkan pesan.

Misalnya, perangkat lunak perbankan mungkin akan mengirim ribuan aplikasi kartu kredit setiap hari ke sistem backend-nya untuk persetujuan. Lalu, sistem backend menerima aplikasi tetapi tidak dapat memproses semuanya karena informasi yang tidak lengkap. Alih-alih melakukan upaya yang tidak ada habisnya, perangkat lunak memindahkan pesan ke DLQ sampai tim IT menyelesaikan masalah tersebut. Hal ini memungkinkan sistem untuk memproses dan mengirimkan sisa pesan tanpa masalah performa. 

Kapan sebaiknya Anda menggunakan antrean surat mati?

Anda dapat menggunakan antrean surat mati (DLQ) jika sistem memiliki masalah berikut. 

Antrean tidak berurutan

Anda dapat memanfaatkan DLQ saat aplikasi tidak bergantung pada urutan. Meskipun DLQ membantu Anda memecahkan masalah operasi transmisi pesan yang salah, Anda harus terus memantau antrean dan mengirim ulang pesan yang gagal. 

Antrean FIFO

Urutan pesan penting dalam antrean pertama masuk, pertama keluar (FIFO). Setiap pesan harus diproses sebelum mengirimkan pesan berikutnya. Anda dapat menggunakan antrean surat mati dengan antrean FIFO, tetapi implementasi DLQ Anda juga harus berupa FIFO.

Kapan sebaiknya Anda tidak menggunakan antrean surat mati?

Anda tidak boleh menggunakan antrean surat mati (DLQ) dengan antrean yang tidak berurutan jika Anda ingin dapat terus mencoba ulang transmisi pesan tanpa batas waktu. Misalnya, jangan gunakan antrean surat mati jika program Anda harus menunggu proses dependen menjadi aktif atau tersedia. 

Demikian pula, Anda tidak boleh menggunakan antrean surat mati dengan antrean pertama masuk, pertama keluar (FIFO) jika Anda tidak ingin merusak urutan pesan atau operasi yang tepat. Misalnya, jangan menggunakan antrean surat mati dengan instruksi dalam daftar keputusan edit (EDL) untuk rangkaian pengeditan video. Dalam hal ini, dengan mengubah urutan pengeditan, Anda mengubah konteks pengeditan berikutnya.

Bagaimana cara kerja antrean surat mati?

Sebagian besar, antrean surat mati (DLQ) berfungsi sebagaimana antrean pesan biasa. DLQ menyimpan pesan yang salah sampai Anda memprosesnya untuk menyelidiki penyebab kesalahan.

Selanjutnya, kita akan membahas kebijakan redrive untuk DLQ dan cara pesan berpindah ke dalam dan ke luar DLQ.

Membuat kebijakan redrive

Perangkat lunak memindahkan pesan ke antrean surat mati dengan merujuk pada kebijakan redrive. Kebijakan redrive terdiri dari aturan yang menentukan kapan perangkat lunak harus memindahkan pesan ke antrean surat mati. Kebijakan redrive mengatur cara antrean sumber dan antrean surat mati saling berinteraksi, terutama dengan menentukan jumlah percobaan ulang maksimum. 

Misalnya, jika developer Anda menetapkan jumlah percobaan ulang maksimum ke satu, sistem akan memindahkan semua pengiriman yang gagal ke DLQ setelah satu kali percobaan. Beberapa pengiriman yang gagal dapat disebabkan oleh kelebihan muatan jaringan sementara atau masalah perangkat lunak. Kebijakan ini akan mengirimkan banyak pesan yang tidak terkirim ke DLQ. Untuk mendapatkan keseimbangan yang tepat, developer mengoptimalkan jumlah percobaan ulang maksimum untuk memastikan perangkat lunak melakukan percobaan ulang dalam jumlah yang cukup sebelum memindahkan pesan ke DLQ.

Memindahkan pesan ke antrean surat mati

Upaya pengiriman antara pengirim dan penerima dapat mengalami kegagalan karena beberapa sebab: 

  • Penerima gagal menerima pesan karena penerima tidak ada. 
  • Pesan mengandung kesalahan. 
  • Pesan melebihi batas antrean atau panjang pesan. Misalnya, beberapa penerima tidak dapat memproses pesan yang melebihi ukuran tertentu. 
  • Time to live (TTL) pesan telah kedaluwarsa. TTL adalah nilai yang menunjukkan berapa lama paket data tertentu valid pada jaringan. 

Mengeluarkan pesan dari antrean surat mati

Ketika pesan berpindah ke dalam antrean surat mati, developer memeriksa pesan yang salah untuk menentukan penyebabnya. Pesan di DLQ mungkin berisi wawasan berharga untuk mencegah terulangnya masalah serupa pada masa mendatang. Setelah developer menganalisis dan meremediasi masalah, sistem akan mengeluarkan pesan dari DLQ dan memasukkan ke antrean sumber. Hal ini memungkinkan pengirim untuk terus memproses pesan. 

Bagaimana AWS dapat mendukung persyaratan antrean surat mati Anda?

Amazon Simple Queue Service (Amazon SQS) menyediakan pendekatan yang dapat diskalakan untuk bertukar pesan di antara sistem terdistribusi dalam skala besar. Developer menggunakan Amazon SQS untuk membangun aplikasi web yang andal dengan antrean standar terkelola penuh dan antrean pertama masuk, pertama keluar (FIFO).

Berikut keuntungan lain dari Amazon SQS:

  • Amazon SQS memungkinkan sistem membuat antrean pesan dalam jumlah yang tidak terbatas
  • Developer dapat mentransfer pesan dalam batch untuk mencapai efisiensi biaya
  • Amazon SQS mendukung penguncian pesan, yang mencegah beberapa komputer memproses pesan yang sama secara bersamaan

Mulai Amazon Web Services (AWS) dengan membuat akun AWS sekarang.

Langkah Berikutnya di AWS

Lihat sumber daya terkait produk tambahan
Jelajahi Penawaran Integrasi Aplikasi Gratis 
Daftar untuk akun gratis

Dapatkan akses secara instan ke AWS Tingkat Gratis.

Daftar 
Mulai membangun di konsol

Mulai membangun di Konsol Manajemen AWS.

Masuk