

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

# Cara kerja antrian adil Amazon SQS
<a name="sqs-fair-queues-detailed"></a>

 Antrian adil Amazon SQS secara otomatis mengurangi dampak tetangga yang bising dalam antrian multi-penyewa dengan mencegah penyewa tunggal memperlambat pemrosesan pesan untuk penyewa lain. Ketika antrian yang adil mendeteksi bahwa satu penyewa menggunakan bagian yang tidak proporsional dari kapasitas konsumen antrian, mereka memprioritaskan pengiriman pesan dari penyewa yang tenang. 

## Identifikasi penyewa
<a name="sqs-fair-queues-tenant-identification"></a>

Antrian yang adil mengidentifikasi penyewa berdasarkan `MessageGroupId` properti pada setiap pesan. Pesan yang berbagi yang sama `MessageGroupId` milik penyewa yang sama. Antrian yang adil dapat berisi campuran pesan dengan dan tanpa file. `MessageGroupId` Setiap pesan tanpa a `MessageGroupId` diperlakukan sebagai milik penyewa yang berbeda.

Sebaiknya setel a `MessageGroupId` pada setiap pesan yang Anda kirim ke antrian yang adil, menggunakan pengenal yang memetakan ke entitas nyata di sistem Anda, seperti ID pelanggan, ID aplikasi klien, atau jenis permintaan.

## Cara kerja deteksi
<a name="sqs-fair-queues-detection"></a>

Amazon SQS mendeteksi tetangga yang berisik menggunakan dua ukuran:
+ **Concurrency share** — pesan dalam penerbangan penyewa sebagai sebagian kecil dari semua pesan dalam penerbangan dalam antrian. Ini mendeteksi penyewa dengan banyak pesan yang diproses sekaligus, baik karena volume pengiriman yang tinggi, pemrosesan yang lambat, atau keduanya.
+ **Pembagian waktu pemrosesan — bagian** terakhir penyewa dari total waktu pemrosesan konsumen. Ini mendeteksi penyewa yang pesannya sedikit jumlahnya tetapi lambat untuk diproses, sehingga penyewa menempati waktu konsumen yang signifikan tanpa memiliki banyak pesan dalam penerbangan sekaligus.

Penyewa ditandai sebagai tetangga yang berisik ketika salah satu dari berikut ini benar:
+ **Berbagi konkurensi**: penyewa menyumbang lebih dari 10% pesan dalam penerbangan dalam antrian dan memiliki setidaknya 30 pesannya sendiri dalam penerbangan.
+ **Pembagian waktu pemrosesan: pangsa** penyewa baru-baru ini dari total waktu pemrosesan konsumen melebihi 10%.

Karena Amazon SQS adalah sistem terdistribusi, ambang batas ini merupakan perkiraan dan deteksi mungkin tidak diaktifkan pada nilai persis yang dijelaskan.

## Bagaimana pesanan pengiriman pesan berubah
<a name="sqs-fair-queues-delivery-order"></a>

Setelah penyewa terdeteksi sebagai tetangga yang berisik, Amazon SQS memprioritaskan pengiriman pesan dari penyewa yang tenang. Contoh konsumen yang melakukan polling untuk pesan menerima pesan dari penyewa yang tenang setiap kali pesan penyewa tenang tersedia. Prioritas ini berlanjut sampai pangsa konkurensi tetangga yang berisik dan pangsa waktu pemrosesan turun ke level yang sebanding dengan penyewa yang tenang.

Pesan tetangga yang berisik tidak dijatuhkan atau dibatasi. Waktu tinggal mereka meningkat sementara pesan penyewa yang tenang diprioritaskan, dan kembali normal setelah backlog mereka hilang. Ketika tidak ada pesan penyewa tenang yang menunggu, contoh konsumen menerima pesan tetangga yang berisik seperti biasa.

Jika beberapa penyewa terdeteksi sebagai tetangga yang berisik secara bersamaan, contoh konsumen menerima pesan dari penyewa yang berisik dengan pesan dalam penerbangan paling sedikit terlebih dahulu. Ini membantu menyeimbangkan waktu pemrosesan di seluruh penyewa yang berisik.

## Ketika tetangga yang berisik menjadi pendiam
<a name="sqs-fair-queues-quiet-removal"></a>

Penyewa tidak lagi diperlakukan sebagai tetangga yang berisik ketika salah satu dari berikut ini benar:
+ Backlog penyewa telah sepenuhnya dikonsumsi.
+ Tidak ada pesan dari penyewa yang telah terbang selama 5 menit.

Setelah itu, pesan penyewa tidak lagi diprioritaskan dan diperlakukan sama seperti pesan dari penyewa tenang lainnya.

## Pertimbangan kapasitas konsumen
<a name="sqs-fair-queues-consumer-capacity"></a>

Agar ukuran pembagian konkurensi berfungsi secara efektif, konsumen Anda perlu memproses pesan yang cukup secara bersamaan sehingga bagian satu penyewa dari pesan dalam penerbangan dapat menonjol. Pertimbangkan ini saat mengukur armada konsumen Anda.

Saat menggunakan Lambda sebagai konsumen melalui pemetaan sumber peristiwa, jumlah pesan dalam penerbangan bergantung pada konkurensi fungsi Lambda dan ukuran batch. Evaluasi pengaturan ini bersama-sama saat mengukur konsumen Anda.

Ketika jumlah pesan dalam penerbangan terlalu rendah untuk memicu ambang pembagian konkurensi, ukuran pembagian waktu pemrosesan masih dapat mendeteksi tetangga yang berisik. Namun, antrian yang adil bekerja paling baik ketika konsumen memproses pesan yang cukup secara bersamaan untuk kedua tindakan yang akan dievaluasi.