

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

# Bekerja dengan Amazon Simple Queue Service
<a name="examples-sqs"></a>

Bagian ini memberikan contoh pemrograman [Amazon Simple Queue Service](https://docs.aws.amazon.com/sqs/)menggunakan AWS SDK untuk Java 2.x.

Contoh berikut hanya mencakup kode yang diperlukan untuk mendemonstrasikan setiap teknik. [Kode contoh lengkap tersedia di GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/javav2). Dari sana, Anda dapat mengunduh satu file sumber atau mengkloning repositori secara lokal untuk mendapatkan semua contoh untuk dibangun dan dijalankan.

**Topics**
+ [Gunakan batching permintaan otomatis](sqs-auto-batch.md)
+ [Operasi antrian](examples-sqs-message-queues.md)
+ [Operasi pesan](examples-sqs-messages.md)

# Gunakan batching permintaan otomatis untuk Amazon SQS dengan AWS SDK for Java 2.x
<a name="sqs-auto-batch"></a>

Automatic Request Batching API untuk Amazon SQS adalah pustaka tingkat tinggi yang menyediakan cara efisien untuk mengumpulkan dan menyangga permintaan untuk operasi SQS. Dengan menggunakan API batching, Anda mengurangi jumlah permintaan ke SQS, yang meningkatkan throughput dan meminimalkan biaya. 

Karena metode API batch cocok dengan `[SqsAsyncClient](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/sqs/SqsAsyncClient.html)` metode—`sendMessage`,, `changeMessageVisibility``deleteMessage`, `receiveMessage` —Anda dapat menggunakan API batch sebagai pengganti drop-in dengan sedikit perubahan. 

Topik ini memberi Anda gambaran umum tentang cara mengonfigurasi dan bekerja dengan Automatic Request Batching API untuk Amazon SQS.

## Periksa prasyarat
<a name="sqs-auto-batch-requirements"></a>

Anda perlu menggunakan SDK for Java *2.x versi 2.28.0* atau yang lebih baru untuk memiliki akses ke API batching. Maven Anda setidaknya `pom.xml` harus mengandung elemen-elemen berikut.

```
<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>software.amazon.awssdk</groupId>
            <artifactId>bom</artifactId>
            <version>2.28.231</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>
<dependencies>
    <dependency>
        <groupId>software.amazon.awssdk</groupId>
        <artifactId>sqs</artifactId>
    </dependency>
</dependencies>
```

1 [Versi terbaru](https://central.sonatype.com/artifact/software.amazon.awssdk/bom)

## Buat pengelola batch
<a name="sqs-auto-batch-create"></a>

API batching permintaan otomatis diimplementasikan oleh [SqsAsyncBatchManager](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/sqs/batchmanager/SqsAsyncBatchManager.html)antarmuka. Anda dapat membuat contoh manajer beberapa cara.

### Konfigurasi default dengan menggunakan `SqsAsyncClient`
<a name="sqs-batch-manager-create-default"></a>

Cara paling sederhana Anda dapat membuat pengelola batch adalah dengan memanggil metode `batchManager` pabrik pada [SqsAsyncClient](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/sqs/SqsAsyncClient.html)instance yang ada. Pendekatan sederhana ditunjukkan dalam cuplikan berikut. 

```
SqsAsyncClient asyncClient = SqsAsyncClient.create();
SqsAsyncBatchManager sqsAsyncBatchManager = asyncClient.batchManager();
```

Bila Anda menggunakan pendekatan ini, `SqsAsyncBatchManager` instance menggunakan nilai default yang ditampilkan dalam tabel di [Ganti pengaturan konfigurasi untuk `SqsAsyncBatchManager`](#sqs-auto-batch-config-settings) bagian. Selain itu, `SqsAsyncBatchManager` instance menggunakan `SqsAsyncClient` instance dari mana ia dibuat. `ExecutorService`

### Konfigurasi kustom dengan menggunakan `SqsAsyncBatchManager.Builder`
<a name="sqs-batch-manager-create-custom"></a>

Untuk kasus penggunaan yang lebih lanjut, Anda dapat menyesuaikan pengelola batch menggunakan file [https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/sqs/batchmanager/SqsAsyncBatchManager.Builder.html](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/sqs/batchmanager/SqsAsyncBatchManager.Builder.html). Dengan menggunakan pendekatan ini untuk membuat `SqsAsyncBatchManager` instance, Anda dapat menyempurnakan perilaku batching. Cuplikan berikut menunjukkan contoh cara menggunakan builder untuk menyesuaikan perilaku batching.

```
SqsAsyncBatchManager batchManager = SqsAsyncBatchManager.builder()
    .client(SqsAsyncClient.create())
    .scheduledExecutor(Executors.newScheduledThreadPool(5))
    .overrideConfiguration(b -> b
        .receiveMessageMinWaitDuration(Duration.ofSeconds(10))
        .receiveMessageVisibilityTimeout(Duration.ofSeconds(1))
        .receiveMessageAttributeNames(Collections.singletonList("*"))
        .receiveMessageSystemAttributeNames(Collections.singletonList(MessageSystemAttributeName.ALL)))
    .build();
```

Bila Anda menggunakan pendekatan ini, Anda dapat menyesuaikan pengaturan pada `BatchOverrideConfiguration` objek yang ditunjukkan pada tabel di [Ganti pengaturan konfigurasi untuk `SqsAsyncBatchManager`](#sqs-auto-batch-config-settings) bagian. Anda juga dapat memberikan kustom [https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/concurrent/ScheduledExecutorService.html](https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/concurrent/ScheduledExecutorService.html)untuk pengelola batch dengan menggunakan pendekatan ini.

## Kirim pesan
<a name="sqs-auto-batch-send"></a>

Untuk mengirim pesan dengan pengelola batch, gunakan `[SqsAsyncBatchManager\$1sendMessage](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/sqs/batchmanager/SqsAsyncBatchManager.html#sendMessage(software.amazon.awssdk.services.sqs.model.SendMessageRequest))` metode ini. Buffer SDK meminta dan mengirimkannya sebagai batch saat `sendRequestFrequency` nilai `maxBatchSize` atau tercapai.

Contoh berikut menunjukkan `sendMessage` permintaan segera diikuti oleh permintaan lain. Dalam hal ini, SDK mengirim kedua pesan dalam satu batch.

```
// Sending the first message
CompletableFuture<SendMessageResponse> futureOne = 
    sqsAsyncBatchManager.sendMessage(r -> r.messageBody("One").queueUrl("queue"));

// Sending the second message
CompletableFuture<SendMessageResponse> futureTwo = 
    sqsAsyncBatchManager.sendMessage(r -> r.messageBody("Two").queueUrl("queue"));

// Waiting for both futures to complete and retrieving the responses
SendMessageResponse messageOne = futureOne.join();
SendMessageResponse messageTwo = futureTwo.join();
```

## Mengubah batas waktu visibilitas pesan
<a name="sqs-auto-batch-change-vis"></a>

Anda dapat mengubah batas waktu visibilitas pesan dalam batch dengan menggunakan metode ini [https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/sqs/batchmanager/SqsAsyncBatchManager.html#changeMessageVisibility(java.util.function.Consumer)](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/sqs/batchmanager/SqsAsyncBatchManager.html#changeMessageVisibility(java.util.function.Consumer)). Buffer SDK meminta dan mengirimkannya sebagai batch saat `sendRequestFrequency` nilai `maxBatchSize` atau tercapai.

Contoh berikut menunjukkan cara memanggil `changeMessageVisibility` metode.

```
CompletableFuture<ChangeMessageVisibilityResponse> futureOne =
    sqsAsyncBatchManager.changeMessageVisibility(r -> 
        r.receiptHandle("receiptHandle")
         .queueUrl("queue"));
ChangeMessageVisibilityResponse response = futureOne.join();
```

## Hapus pesan
<a name="sqs-auto-batch-delete"></a>

Anda dapat menghapus pesan dalam batch menggunakan [https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/sqs/batchmanager/SqsAsyncBatchManager.html#deleteMessage(java.util.function.Consumer)](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/sqs/batchmanager/SqsAsyncBatchManager.html#deleteMessage(java.util.function.Consumer))metode ini. Buffer SDK meminta dan mengirimkannya sebagai batch saat `sendRequestFrequency` nilai `maxBatchSize` atau tercapai.

Contoh berikut menunjukkan bagaimana Anda dapat memanggil `deleteMessage` metode.

```
CompletableFuture<DeleteMessageResponse> futureOne = 
    sqsAsyncBatchManager.deleteMessage(r -> 
        r.receiptHandle("receiptHandle")
         .queueUrl("queue"));
DeleteMessageResponse response = futureOne.join();
```

## Menerima pesan
<a name="sqs-auto-batch-receive"></a>

### Gunakan pengaturan default
<a name="sqs-auto-batch-receive-default-settings"></a>

Saat Anda melakukan polling `[SqsAsyncBatchManager\$1receiveMessage](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/sqs/batchmanager/SqsAsyncBatchManager.html#receiveMessage(java.util.function.Consumer))` metode dalam aplikasi Anda, pengelola batch mengambil pesan dari buffer internalnya, yang diperbarui secara otomatis oleh SDK di latar belakang.

Contoh berikut menunjukkan cara memanggil `receiveMessage` metode.

```
CompletableFuture<ReceiveMessageResponse> responseFuture = 
    sqsAsyncBatchManager.receiveMessage(r -> r.queueUrl("queueUrl"));
```

### Gunakan pengaturan khusus
<a name="sqs-auto-batch-receive-custom-settings"></a>

Jika Anda ingin menyesuaikan permintaan lebih lanjut, misalnya dengan menyetel waktu tunggu khusus dan menentukan jumlah pesan yang akan diambil, Anda dapat menyesuaikan permintaan seperti yang ditunjukkan pada contoh berikut.

```
CompletableFuture<ReceiveMessageResponse> response = 
    sqsAsyncBatchManager.receiveMessage(r -> 
        r.queueUrl("queueUrl")
         .waitTimeSeconds(5)
         .visibilityTimeout(20));
```

**catatan**  
Jika Anda memanggil `receiveMessage` dengan `[ReceiveMessageRequest](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/sqs/model/ReceiveMessageRequest.html)` yang menyertakan salah satu parameter berikut, SDK melewati pengelola batch dan mengirimkan permintaan `receiveMessage` asinkron reguler:  
`messageAttributeNames`
`messageSystemAttributeNames`
`messageSystemAttributeNamesWithStrings`
`overrideConfiguration`

## Ganti pengaturan konfigurasi untuk `SqsAsyncBatchManager`
<a name="sqs-auto-batch-config-settings"></a>

Anda dapat menyesuaikan pengaturan berikut saat membuat `SqsAsyncBatchManager` instance. Daftar pengaturan berikut tersedia di [https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/sqs/batchmanager/BatchOverrideConfiguration.Builder.html](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/sqs/batchmanager/BatchOverrideConfiguration.Builder.html).


| Pengaturan | Deskripsi | Nilai default | 
| --- | --- | --- | 
| maxBatchSize | Jumlah maksimum permintaan per batch untuk masing-masingSendMessageBatchRequest,ChangeMessageVisibilityBatchRequest, atauDeleteMessageBatchRequest. Nilai maksimumnya adalah 10. | 10 | 
| sendRequestFrequency |  Waktu sebelum mengirim batch, kecuali `maxBatchSize` tercapai lebih awal. Nilai yang lebih tinggi dapat mengurangi permintaan tetapi meningkatkan latensi.  | 200ms | 
| receiveMessageVisibilityTimeout | Batas waktu visibilitas untuk pesan. Jika tidak disetel, default antrian digunakan. | Antrian default | 
| receiveMessageMinWaitDuration | Waktu tunggu minimum untuk receiveMessage permintaan. Hindari pengaturan ke 0 untuk mencegah pemborosan CPU. | 50ms | 
| receiveMessageSystemAttributeNames | Daftar [nama atribut sistem](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/sqs/model/MessageSystemAttributeName.html) untuk meminta receiveMessage panggilan. | Tidak ada | 
| receiveMessageAttributeNames | Daftar [nama atribut](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-message-metadata.html#sqs-message-attributes) untuk meminta receiveMessage panggilan. | Tidak ada | 

# Bekerja dengan Amazon Simple Queue Service antrian pesan
<a name="examples-sqs-message-queues"></a>

*Antrian pesan* adalah wadah logis yang digunakan untuk mengirim pesan dengan andal. Amazon Simple Queue Service Ada dua jenis antrian: *standar* dan *first-in, first-out* (FIFO). Untuk mempelajari lebih lanjut tentang antrian dan perbedaan di antara jenis-jenis ini, lihat Panduan [Amazon Simple Queue Service Pengembang](https://docs.aws.amazon.com//AWSSimpleQueueService/latest/SQSDeveloperGuide/welcome.html).

Topik ini menjelaskan cara membuat, membuat daftar, menghapus, dan mendapatkan URL Amazon Simple Queue Service antrian dengan menggunakan. AWS SDK untuk Java

`sqsClient`Variabel yang digunakan dalam contoh berikut dapat dibuat dari cuplikan berikut.

```
SqsClient sqsClient = SqsClient.create();
```

Bila Anda membuat `SqsClient` dengan menggunakan `create()` metode statis, SDK akan mengonfigurasi Region menggunakan [rantai penyedia wilayah default dan kredensialnya menggunakan rantai penyedia](region-selection.md#default-region-provider-chain) kredensial [default](credentials-chain.md).

## Membuat antrean
<a name="sqs-create-queue"></a>

Gunakan `SqsClient’s` `createQueue` metode ini, dan berikan `[CreateQueueRequest](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/sqs/model/CreateQueueRequest.html)` objek yang menjelaskan parameter antrian seperti yang ditunjukkan pada cuplikan kode berikut.

 **Impor** 

```
import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.sqs.SqsClient;
import software.amazon.awssdk.services.sqs.model.*;
import java.util.List;
```

 **Kode** 

```
            CreateQueueRequest createQueueRequest = CreateQueueRequest.builder()
                .queueName(queueName)
                .build();

            sqsClient.createQueue(createQueueRequest);
```

Lihat [sampel lengkapnya](https://github.com/awsdocs/aws-doc-sdk-examples/blob/cf25559da654a7b74bec039c0ab9397dc5951dd4/javav2/example_code/sqs/src/main/java/com/example/sqs/SQSExample.java#L52) di GitHub.

## Daftar antrian
<a name="sqs-list-queues"></a>

Untuk membuat daftar Amazon Simple Queue Service antrian untuk akun Anda, panggil `SqsClient’s` `listQueues` metode dengan `[ListQueuesRequest](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/sqs/model/ListQueuesRequest.html)` objek.

Bila Anda menggunakan bentuk [https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/sqs/SqsClient.html#listQueues()](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/sqs/SqsClient.html#listQueues())metode yang tidak mengambil parameter, layanan mengembalikan *semua antrian hingga 1.000* antrian. 

Anda dapat memberikan awalan nama antrian ke `[ListQueuesRequest](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/sqs/model/ListQueuesRequest.html)` objek untuk membatasi hasil ke antrian yang cocok dengan awalan seperti yang ditunjukkan dalam kode berikut.

 **Impor** 

```
import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.sqs.SqsClient;
import software.amazon.awssdk.services.sqs.model.*;
import java.util.List;
```

 **Kode** 

```
        String prefix = "que";

        try {
            ListQueuesRequest listQueuesRequest = ListQueuesRequest.builder().queueNamePrefix(prefix).build();
            ListQueuesResponse listQueuesResponse = sqsClient.listQueues(listQueuesRequest);

            for (String url : listQueuesResponse.queueUrls()) {
                System.out.println(url);
            }

        } catch (SqsException e) {
            System.err.println(e.awsErrorDetails().errorMessage());
            System.exit(1);
        }
```

Lihat [sampel lengkapnya](https://github.com/awsdocs/aws-doc-sdk-examples/blob/cf25559da654a7b74bec039c0ab9397dc5951dd4/javav2/example_code/sqs/src/main/java/com/example/sqs/SQSExample.java#L79) di GitHub.

## Dapatkan URL untuk antrian
<a name="sqs-get-queue-url"></a>

Kode berikut menunjukkan cara mendapatkan URL untuk antrian dengan memanggil `SqsClient’s` `getQueueUrl` metode dengan `[GetQueueUrlRequest](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/sqs/model/GetQueueUrlRequest.html)` objek.

 **Impor** 

```
import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.sqs.SqsClient;
import software.amazon.awssdk.services.sqs.model.*;
import java.util.List;
```

 **Kode** 

```
            GetQueueUrlResponse getQueueUrlResponse =
                sqsClient.getQueueUrl(GetQueueUrlRequest.builder().queueName(queueName).build());
            String queueUrl = getQueueUrlResponse.queueUrl();
            return queueUrl;
```

Lihat [sampel lengkapnya](https://github.com/awsdocs/aws-doc-sdk-examples/blob/7486a1a092aa8e16a21698ef26f9d524fef62e55/javav2/example_code/sqs/src/main/java/com/example/sqs/SQSExample.java#L70) di GitHub.

## Hapus antrian
<a name="sqs-delete-queue"></a>

Berikan [URL](#sqs-get-queue-url) antrian ke `[DeleteQueueRequest](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/sqs/model/DeleteQueueRequest.html)` objek. Kemudian panggil `SqsClient’s` `deleteQueue` metode untuk menghapus antrian seperti yang ditunjukkan pada kode berikut.

 **Impor** 

```
import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.sqs.SqsClient;
import software.amazon.awssdk.services.sqs.model.*;
import java.util.List;
```

 **Kode** 

```
    public static void deleteSQSQueue(SqsClient sqsClient, String queueName) {

        try {

            GetQueueUrlRequest getQueueRequest = GetQueueUrlRequest.builder()
                    .queueName(queueName)
                    .build();

            String queueUrl = sqsClient.getQueueUrl(getQueueRequest).queueUrl();

            DeleteQueueRequest deleteQueueRequest = DeleteQueueRequest.builder()
                    .queueUrl(queueUrl)
                    .build();

            sqsClient.deleteQueue(deleteQueueRequest);

        } catch (SqsException e) {
            System.err.println(e.awsErrorDetails().errorMessage());
            System.exit(1);
        }
    }
```

Lihat [sampel lengkapnya](https://github.com/awsdocs/aws-doc-sdk-examples/blob/6240df86c5f17eae1e23d1139d1435c7dc4b2a11/javav2/example_code/sqs/src/main/java/com/example/sqs/DeleteQueue.java#L48) di GitHub.

## Informasi selengkapnya
<a name="more-information"></a>
+  [CreateQueue](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_CreateQueue.html)di Referensi Amazon Simple Queue Service API
+  [GetQueueUrl](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_GetQueueUrl.html)di Referensi Amazon Simple Queue Service API
+  [ListQueues](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_ListQueues.html)di Referensi Amazon Simple Queue Service API
+  [DeleteQueue](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_DeleteQueue.html)di Referensi Amazon Simple Queue Service API

# Mengirim, menerima, dan menghapus Amazon Simple Queue Service pesan
<a name="examples-sqs-messages"></a>

Pesan adalah sepotong data yang dapat dikirim dan diterima oleh komponen terdistribusi. Pesan selalu dikirimkan menggunakan [SQS Queue](examples-sqs-message-queues.md).

`sqsClient`Variabel yang digunakan dalam contoh berikut dapat dibuat dari cuplikan berikut.

```
SqsClient sqsClient = SqsClient.create();
```

Bila Anda membuat `SqsClient` dengan menggunakan `create()` metode statis, SDK akan mengonfigurasi Region menggunakan [rantai penyedia wilayah default dan kredensialnya menggunakan rantai penyedia](region-selection.md#default-region-provider-chain) kredensial [default](credentials-chain.md).

## Kirim pesan
<a name="sqs-message-send"></a>

Tambahkan satu pesan ke Amazon Simple Queue Service antrian dengan memanggil `sendMessage` metode SqsClient klien. Berikan [SendMessageRequest](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/sqs/model/SendMessageRequest.html)objek yang berisi [URL](examples-sqs-message-queues.md#sqs-get-queue-url) antrian, isi pesan, dan nilai penundaan opsional (dalam hitungan detik).

 **Impor** 

```
import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.sqs.SqsClient;
import software.amazon.awssdk.services.sqs.model.*;
import java.util.List;
```

 **Kode** 

```
            sqsClient.sendMessage(SendMessageRequest.builder()
                .queueUrl(queueUrl)
                .messageBody("Hello world!")
                .delaySeconds(10)
                .build());

            sqsClient.sendMessage(sendMsgRequest);
```

## Kirim beberapa pesan dalam satu permintaan
<a name="sqs-messages-send-multiple"></a>

Kirim lebih dari satu pesan dalam satu permintaan dengan menggunakan SqsClient `sendMessageBatch` metode ini. Metode ini mengambil [SendMessageBatchRequest](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/sqs/model/SendMessageBatchRequest.html)yang berisi URL antrian dan daftar pesan untuk dikirim. (Setiap pesan adalah a [SendMessageBatchRequestEntry](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/sqs/model/SendMessageBatchRequestEntry.html).) Anda juga dapat menunda pengiriman pesan tertentu dengan menetapkan nilai penundaan pada pesan.

 **Impor** 

```
import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.sqs.SqsClient;
import software.amazon.awssdk.services.sqs.model.*;
import java.util.List;
```

 **Kode** 

```
            SendMessageBatchRequest sendMessageBatchRequest = SendMessageBatchRequest.builder()
                .queueUrl(queueUrl)
                .entries(SendMessageBatchRequestEntry.builder().id("id1").messageBody("Hello from msg 1").build(),
                        SendMessageBatchRequestEntry.builder().id("id2").messageBody("msg 2").delaySeconds(10).build())
                .build();
            sqsClient.sendMessageBatch(sendMessageBatchRequest);
```

Lihat [sampel lengkapnya](https://github.com/awsdocs/aws-doc-sdk-examples/blob/cf25559da654a7b74bec039c0ab9397dc5951dd4/javav2/example_code/sqs/src/main/java/com/example/sqs/SQSExample.java#L133) di GitHub.

## Ambil Pesan
<a name="sqs-messages-receive"></a>

Ambil pesan apa pun yang saat ini berada dalam antrian dengan memanggil metode. SqsClient `receiveMessage` Metode ini mengambil [ReceiveMessageRequest](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/sqs/model/ReceiveMessageRequest.html)yang berisi URL antrian. Anda juga dapat menentukan jumlah maksimum pesan yang akan dikembalikan. Pesan dikembalikan sebagai daftar objek [Pesan](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/sqs/model/Message.html).

 **Impor** 

```
import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.sqs.SqsClient;
import software.amazon.awssdk.services.sqs.model.*;
import java.util.List;
```

 **Kode** 

```
        try {
            ReceiveMessageRequest receiveMessageRequest = ReceiveMessageRequest.builder()
                .queueUrl(queueUrl)
                .maxNumberOfMessages(5)
                .build();
            List<Message> messages = sqsClient.receiveMessage(receiveMessageRequest).messages();
            return messages;
        } catch (SqsException e) {
            System.err.println(e.awsErrorDetails().errorMessage());
            System.exit(1);
        }
        return null;
```

Lihat [sampel lengkapnya](https://github.com/awsdocs/aws-doc-sdk-examples/blob/cf25559da654a7b74bec039c0ab9397dc5951dd4/javav2/example_code/sqs/src/main/java/com/example/sqs/SQSExample.java#L148) di GitHub.

## Hapus pesan setelah diterima
<a name="sqs-messages-delete"></a>

Setelah menerima pesan dan memproses isinya, hapus pesan dari antrian dengan mengirimkan alamat tanda terima pesan dan URL antrian ke metode. `SqsClient's` [https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/sqs/SqsClient.html#deleteMessage(software.amazon.awssdk.services.sqs.model.DeleteMessageRequest)](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/sqs/SqsClient.html#deleteMessage(software.amazon.awssdk.services.sqs.model.DeleteMessageRequest))

 **Impor** 

```
import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.sqs.SqsClient;
import software.amazon.awssdk.services.sqs.model.*;
import java.util.List;
```

 **Kode** 

```
        try {
            for (Message message : messages) {
                DeleteMessageRequest deleteMessageRequest = DeleteMessageRequest.builder()
                        .queueUrl(queueUrl)
                        .receiptHandle(message.receiptHandle())
                        .build();
                sqsClient.deleteMessage(deleteMessageRequest);
            }
```

Lihat [sampel lengkapnya](https://github.com/awsdocs/aws-doc-sdk-examples/blob/cf25559da654a7b74bec039c0ab9397dc5951dd4/javav2/example_code/sqs/src/main/java/com/example/sqs/SQSExample.java#L187) di GitHub.

## Info Selengkapnya
<a name="more-info"></a>
+  [Cara Kerja Amazon Simple Queue Service Antrian di Panduan](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-basic-architecture.html) Pengembang Amazon Simple Queue Service 
+  [SendMessage](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_SendMessage.html)di Referensi Amazon Simple Queue Service API
+  [SendMessageBatch](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_SendMessageBatch.html)di Referensi Amazon Simple Queue Service API
+  [ReceiveMessage](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_ReceiveMessage.html)di Referensi Amazon Simple Queue Service API
+  [DeleteMessage](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_DeleteMessage.html)di Referensi Amazon Simple Queue Service API