SUS02-BP06 Mengimplementasikan buffering atau throttling untuk meratakan kurva permintaan
Buffering dan throttling meratakan kurva permintaan dan mengurangi kapasitas tersedia yang diperlukan untuk beban kerja Anda.
Antipola umum:
-
Anda memproses permintaan klien dengan segera walaupun tidak diperlukan.
-
Anda tidak menganalisis persyaratan untuk permintaan klien.
Manfaat menjalankan praktik terbaik ini: Meratakan kurva permintaan mengurangi kapasitas tersedia yang diperlukan untuk beban kerja. Mengurangi kapasitas tersedia artinya konsumsi energi berkurang dan dampak pada lingkungan juga berkurang.
Tingkat risiko yang terjadi jika praktik terbaik ini tidak dijalankan: Rendah
Meratakan kurva permintaan beban kerja dapat membantu Anda mengurangi kapasitas tersedia untuk beban kerja dan mengurangi dampaknya pada lingkungan. Asumsikan beban kerja dengan kurva permintaan yang ditunjukkan pada gambar di bawah ini. Beban kerja ini memiliki dua puncak. Untuk menangani puncak-puncak ini, kapasitas sumber daya sebagaimana ditunjukkan oleh garis oranye disediakan. Sumber daya dan energi yang digunakan untuk beban kerja ini tidak diindikasikan oleh area di bawah kurva permintaan, tetapi oleh area di bawah garis kapasitas tersedia, karena kapasitas tersedia diperlukan untuk menangani kedua puncak ini.
Anda dapat menggunakan buffering atau throttling untuk memodifikasi kurva permintaan dan meratakan puncak, yang berarti konsumsi lebih sedikit energi dan penyediaan kapasitas lebih rendah. Implementasikan throttling ketika klien Anda dapat mencoba ulang. Implementasikan buffering untuk menyimpan permintaan dan menunda pemrosesan ke lain waktu.
Langkah implementasi
-
Analisis permintaan klien untuk menentukan cara merespons permintaan. Pertanyaan yang harus dipertimbangkan antara lain:
-
Dapatkah permintaan ini diproses secara asinkron?
-
Apakah klien memiliki kemampuan untuk mencoba ulang?
-
-
Jika klien memiliki kemampuan untuk coba ulang, maka Anda dapat mengimplementasikan throttling, yang memberi tahu sumber bahwa jika sumber tidak dapat melayani permintaan pada saat ini maka sumber harus mencoba lagi nanti.
-
Anda dapat menggunakan Amazon API Gateway
untuk mengimplementasikan throttling.
-
-
Untuk klien yang tidak dapat mencoba ulang, buffer harus diimplementasikan untuk meratakan kurva permintaan. Buffer menunda pemrosesan permintaan, sehingga aplikasi yang dijalankan pada tingkat yang berlainan dapat berkomunikasi secara efektif. Pendekatan berbasis buffer menggunakan antrean atau aliran untuk menerima pesan dari produsen. Pesan dibaca oleh konsumen dan diproses, sehingga pesan dapat dijalankan dengan tingkat yang memenuhi persyaratan bisnis konsumen.
-
Amazon Simple Queue Service (Amazon SQS)
merupakan layanan terkelola yang memberikan antrean yang memungkinkan satu konsumen membaca pesan secara individu. -
Amazon Kinesis
memberikan aliran yang memungkinkan banyak konsumen membaca pesan yang sama.
-
-
Analisis permintaan secara keseluruhan, tingkat perubahan, dan waktu respons yang diperlukan untuk ukuran throttle atau buffer yang tepat.
Sumber daya
Dokumen terkait:
Video terkait: