Menggunakan Antrian Surat Mati diAmazon SQS - AWS SDK for Java 1.x

AWS SDK for Java 1.x telah memasuki mode pemeliharaan pada 31 Juli 2024, dan akan mencapai end-of-supportpada 31 Desember 2025. Kami menyarankan Anda bermigrasi ke AWS SDK for Java 2.xuntuk terus menerima fitur baru, peningkatan ketersediaan, dan pembaruan keamanan.

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Menggunakan Antrian Surat Mati diAmazon SQS

Amazon SQSmenyediakan dukungan untukAntrean surat mati. Antrean surat mati adalah antrean yang antrian (sumber) lainnya dapat menargetkan pesan yang tidak dapat berhasil diproses. Anda dapat menyisihkan dan mengisolasi pesan-pesan ini dalam antrian surat mati untuk menentukan mengapa pemrosesan mereka tidak berhasil.

Membuat Antrian Surat Mati

Antrian surat mati dibuat dengan cara yang sama seperti antrian biasa, tetapi memiliki batasan berikut:

  • Antrian surat mati harus jenis antrian yang sama (FIFO atau standar) sebagai antrian sumber.

  • Antrian surat mati harus dibuat menggunakan yang samaAkun AWSdan wilayah sebagai antrian sumber.

Di sini kita membuat dua identikAmazon SQSantrian, salah satunya akan berfungsi sebagai antrian surat mati:

Impor

import com.amazonaws.services.sqs.AmazonSQS; import com.amazonaws.services.sqs.AmazonSQSClientBuilder; import com.amazonaws.services.sqs.model.AmazonSQSException;

Kode

final AmazonSQS sqs = AmazonSQSClientBuilder.defaultClient(); // Create source queue try { sqs.createQueue(src_queue_name); } catch (AmazonSQSException e) { if (!e.getErrorCode().equals("QueueAlreadyExists")) { throw e; } } // Create dead-letter queue try { sqs.createQueue(dl_queue_name); } catch (AmazonSQSException e) { if (!e.getErrorCode().equals("QueueAlreadyExists")) { throw e; } }

LihatLengkapi Contohdi GitHub.

Menunjuk Antrian Surat Mati untuk Antrian Sumber

Untuk menunjuk antrian surat mati, Anda harus terlebih dahulu membuatkebijakan redrive, dan kemudian mengatur kebijakan dalam atribut antrian. Sebuah kebijakan redrive ditentukan dalam JSON, dan menentukan ARN antrian surat mati dan jumlah maksimum kali pesan dapat diterima dan tidak diproses sebelum dikirim ke antrian surat mati.

Untuk mengatur kebijakan redrive untuk antrian sumber Anda, hubungi kelas AmazonSqssetQueueAttributesMetode denganSetQueueAttributesRequestobjek yang telah Anda aturRedrivePolicyatribut dengan kebijakan redrive JSON Anda.

Impor

import com.amazonaws.services.sqs.model.GetQueueAttributesRequest; import com.amazonaws.services.sqs.model.GetQueueAttributesResult; import com.amazonaws.services.sqs.model.SetQueueAttributesRequest;

Kode

String dl_queue_url = sqs.getQueueUrl(dl_queue_name) .getQueueUrl(); GetQueueAttributesResult queue_attrs = sqs.getQueueAttributes( new GetQueueAttributesRequest(dl_queue_url) .withAttributeNames("QueueArn")); String dl_queue_arn = queue_attrs.getAttributes().get("QueueArn"); // Set dead letter queue with redrive policy on source queue. String src_queue_url = sqs.getQueueUrl(src_queue_name) .getQueueUrl(); SetQueueAttributesRequest request = new SetQueueAttributesRequest() .withQueueUrl(src_queue_url) .addAttributesEntry("RedrivePolicy", "{\"maxReceiveCount\":\"5\", \"deadLetterTargetArn\":\"" + dl_queue_arn + "\"}"); sqs.setQueueAttributes(request);

LihatLengkapi Contohdi GitHub.

Info Selengkapnya