Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Antrian adil Amazon SQS
Antrian adil Amazon SQS secara otomatis mengurangi dampak tetangga yang bising dalam antrian multi-penyewa yang berisi pesan dari beberapa entitas logis, seperti pelanggan, aplikasi klien, atau jenis pesan. Dalam lingkungan antrian bersama ini, satu metrik kinerja penting adalah waktu tinggal, yang mengukur total waktu yang dihabiskan pesan dalam antrian dari kedatangan hingga pemrosesan. Ketika satu penyewa membuat backlog dalam antrian dengan menerbitkan lebih banyak pesan daripada yang dapat ditangani sistem, antrian yang adil meminimalkan dampak pada waktu tinggal bagi penyewa lain.
Keadaan mantap
Diagram berikut menggambarkan antrian multi-tenant yang berisi pesan dari empat penyewa yang berbeda (berlabel A, B, C, dan D). Antrian beroperasi dalam keadaan mapan, dan tidak ada backlog pesan karena konsumen menerima pesan segera setelah muncul dalam antrian. Semua penyewa mengalami waktu tinggal yang rendah. Tidak semua kapasitas konsumen dimanfaatkan sepenuhnya dalam kondisi mapan ini.

Dampak tetangga yang bising
Dampak tetangga yang bising terjadi ketika satu penyewa dalam antrian multi-penyewa membuat backlog, meningkatkan waktu tinggal pesan untuk semua penyewa lainnya. Penyewa dapat menjadi tetangga yang berisik dengan mengirimkan volume pesan yang lebih besar daripada penyewa lain, atau ketika konsumen membutuhkan waktu lebih lama untuk memproses pesan dari penyewa tertentu.
Diagram ini menggambarkan bagaimana peningkatan lalu lintas dari Tenant A menciptakan backlog dalam antrian. Konsumen sibuk memproses pesan hanya dari Penyewa A, sementara pesan dari penyewa lain menunggu di backlog, yang mengarah ke waktu tinggal yang lebih tinggi untuk semua penyewa.

Mitigasi dengan antrian yang adil
Amazon SQS mendeteksi tetangga yang berisik dengan memantau distribusi pesan di antara penyewa selama pemrosesan (status “dalam penerbangan”). Ketika penyewa memiliki jumlah pesan dalam penerbangan yang tidak proporsional dibandingkan dengan yang lain, Amazon SQS mengidentifikasi penyewa sebagai tetangga yang berisik dan memprioritaskan pengiriman pesan untuk penyewa lain. Pendekatan ini mengurangi dampak waktu tinggal bagi penyewa lainnya.
Diagram ini menggambarkan bagaimana antrian adil Amazon SQS mengatasi masalah tetangga yang bising. Ketika satu penyewa (Tenant A) menjadi berisik, Amazon SQS memprioritaskan pengembalian pesan dari penyewa lain (B, C, dan D). Prioritas ini membantu mempertahankan waktu tinggal yang rendah untuk penyewa yang tenang Penyewa B, C, dan D, sementara waktu tinggal untuk pesan Tenant A dinaikkan hingga backlog antrian dikonsumsi tanpa memengaruhi penyewa lain.

catatan
Amazon SQS tidak membatasi tingkat konsumsi per penyewa. Hal ini memungkinkan konsumen untuk menerima pesan dari penyewa tetangga yang berisik ketika ada kapasitas konsumen dan antrian tidak memiliki pesan lain untuk dikembalikan. Seperti antrian standar Amazon SQS, antrian yang adil memungkinkan throughput yang hampir tidak terbatas, dan tidak ada batasan jumlah penyewa yang dapat Anda miliki dalam antrian Anda.
Perbedaan dengan antrian FIFO
Antrian FIFO mempertahankan pemesanan yang ketat dengan membatasi jumlah pesan dalam penerbangan dari setiap penyewa. Meskipun ini mencegah tetangga yang berisik, ini membatasi throughput untuk setiap penyewa. Antrian yang adil dirancang untuk skenario multi-penyewa di mana throughput tinggi, waktu tinggal yang rendah, dan alokasi sumber daya yang adil adalah prioritas. Antrian yang adil memungkinkan beberapa konsumen untuk memproses pesan dari penyewa yang sama secara bersamaan sambil membantu semua penyewa mempertahankan waktu tinggal yang konsisten.
Menggunakan antrian yang adil
Produsen pesan Anda dapat menambahkan pengenal penyewa dengan menyetel pesan MessageGroupId
keluar:
// Send message with tenant identifier SendMessageRequest request = new SendMessageRequest() .withQueueUrl(queueUrl) .withMessageBody(messageBody) .withMessageGroupId("tenant-123"); // Tenant identifier sqs.sendMessage(request);
Kemampuan keadilan akan diterapkan secara otomatis di semua antrian standar Amazon SQS untuk pesan dengan properti. MessageGroupId Itu tidak memerlukan perubahan apa pun dalam kode konsumen, tidak berdampak pada latensi API, dan tidak disertai dengan batasan throughput apa pun.
Metrik antrian CloudWatch yang adil
Amazon SQS menyediakan CloudWatch metrik tambahan untuk membantu Anda memantau mitigasi dampak tetangga yang bising. Sebagai contoh, Anda dapat membandingkan Approximate..InQuietGroups
metrik dengan metrik tingkat antrian standar. Selama lonjakan lalu lintas untuk penyewa tertentu, metrik tingkat antrian umum mungkin mengungkapkan peningkatan backlog atau usia pesan yang lebih tua. Namun, melihat kelompok yang tenang secara terpisah, Anda dapat mengidentifikasi bahwa sebagian besar grup pesan atau penyewa yang tidak berisik tidak terpengaruh.
Di bawah ini Anda dapat menemukan contoh di mana metrik backlog antrian standar (ApproximateNumberOfMessagesVisible) meningkat karena penyewa yang berisik sementara backlog untuk penyewa yang tidak berisik () tetap rendah. ApproximateNumberOfMessagesVisibleInQuietGroups

Untuk daftar lengkap metrik Amazon SQS dan deskripsinya, lihat CloudWatch metrik CloudWatch untuk Amazon SQS.