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.
Untuk detail tentang cara Amazon SQS mendeteksi tetangga yang berisik dan mengelola pesanan pengiriman pesan, lihat Cara kerja antrian adil Amazon SQS.
Cara menggunakan antrian yang adil
Untuk mengaktifkan antrian yang adil, produsen pesan harus menambahkan pengenal penyewa dengan menyetel pesan keluar: MessageGroupId
// 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.
catatan
MessageGroupIdpada antrian standar dengan antrian yang adil tidak memiliki perilaku yang sama seperti MessageGroupId pada antrian FIFO. Pada antrian standar, hanya MessageGroupId digunakan sebagai pengenal penyewa untuk antrian yang adil dan tidak memberlakukan pemesanan pesan. Untuk detail MessageGroupId tentang antrian FIFO, lihat Menggunakan ID grup pesan dengan Antrian FIFO Amazon SQS.
Kapan harus menggunakan antrian yang adil
Pertimbangkan untuk menggunakan antrian yang adil ketika semua hal berikut berlaku untuk antrian Anda:
-
Antriannya multi-tenant. Antrian membawa pesan milik beberapa entitas logis, seperti pelanggan, aplikasi klien, atau jenis permintaan, dan Anda dapat mengidentifikasi setiap entitas dengan
MessageGroupIdfile. -
Antriannya adalah throughput tinggi. Pada throughput rendah, ledakan satu penyewa jarang menciptakan backlog yang mempengaruhi penyewa lain. Pada throughput tinggi, penskalaan berlebihan armada konsumen untuk menyerap setiap ledakan tidak praktis, dan bahkan dengan auto-scaling, penundaan sebelum konsumen baru online dapat membiarkan backlog terbentuk.
-
Waktu tinggal adalah bagian dari kualitas layanan aplikasi Anda. Antrian yang adil melindungi penyewa yang tenang dari waktu tinggal yang ditinggikan yang disebabkan oleh tetangga yang berisik. Jika aplikasi Anda tidak sensitif terhadap waktu tinggal, antrian pameran perlindungan tetangga yang berisik mungkin tidak diperlukan.
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.