Rumah >Peranti teknologi >AI >Kuasai empat algoritma pengehad semasa yang biasa digunakan dan anda pasti akan lulus temu duga
Di bawah akses serentak yang tinggi, seperti promosi e-dagang, trafik terus mengalir masuk, dan kekerapan panggilan bersama antara perkhidmatan tiba-tiba meningkat, menyebabkan beban sistem menjadi terlalu tinggi Pada masa ini, kestabilan perkhidmatan yang bergantung kepada sistem Kesan pada sistem adalah sangat besar, dan terdapat banyak faktor tidak pasti yang menyebabkan runtuhan salji, seperti gangguan sambungan rangkaian, masa berhenti perkhidmatan, dsb. Secara amnya, komponen tahan kerosakan perkhidmatan mikro menyediakan pengehadan semasa, pengasingan, degradasi, pemutus litar dan cara lain, yang boleh melindungi sistem perkhidmatan mikro kami dengan berkesan. Artikel ini terutamanya membincangkan tentang pengehadan semasa.
Penghadan semasa bermaksud mengehadkan aliran maksimum untuk mengelakkan kekerapan operasi daripada melebihi had yang ditetapkan. Keselarasan maksimum yang boleh disediakan oleh sistem adalah terhad, dan terdapat terlalu banyak permintaan pada masa yang sama, yang memerlukan pendikitan, seperti jualan kilat dan promosi utama Apabila sejumlah besar permintaan membanjiri serta-merta, pelayan tidak dapat menyampaikannya. jadi ia mesti pendikit. Pengehadan kadar melindungi perkhidmatan daripada penggunaan berlebihan secara tidak sengaja atau berniat jahat dengan mengehadkan bilangan permintaan yang boleh mencapai API dalam tempoh masa tertentu. Tanpa mengehadkan kadar, mana-mana pengguna boleh membedil pelayan anda dengan permintaan, yang membawa kepada situasi di mana pengguna lain mati kelaparan.
Seterusnya, kami akan memperkenalkan empat algoritma pengehad arus biasa
idea algoritma baldi bocor , ialah algoritma mudah dan intuitif, iaitu baldi bocor dengan kapasiti tetap yang mengalir keluar titisan air pada kadar tetap yang tetap. Jika baldi kosong, tiada titisan air yang perlu mengalir. Air boleh mengalir ke dalam baldi yang bocor pada sebarang kadar. Jika titisan air yang masuk melebihi kapasiti baldi, titisan air yang masuk melimpah (dibuang), manakala kapasiti baldi bocor kekal tidak berubah.
Kelebihan algoritma ini ialah ia melancarkan letusan permintaan dan memprosesnya pada kadar yang tetap. Ia juga mudah untuk dilaksanakan pada pengimbang beban dan cekap memori untuk setiap pengguna. Mengekalkan trafik hampir seragam yang berterusan ke pelayan tanpa mengira bilangan permintaan.Kelemahannya ialah letusan permintaan boleh mengisi baldi, membawa kepada kebuluran permintaan baharu. Ia juga tidak menjamin bahawa permintaan akan diselesaikan dalam masa tertentu.
Kelebihan:
Baldi token pada pelayan pengehad semasa boleh melaraskan kelajuan menjana token dan kapasiti baldi berdasarkan prestasi perkhidmatan dan tempoh masa sebenar. Apabila kadar perlu dinaikkan, kadar token yang dimasukkan ke dalam baldi boleh dinaikkan atas permintaan
Kadar di mana token dijana adalah malar, manakala kadar permintaan dibuat untuk mendapatkan token tidak terhad. Ini bermakna apabila berhadapan dengan trafik besar serta-merta, algoritma boleh memperoleh sejumlah besar token dalam tempoh masa yang singkat, dan proses mendapatkan token tidak menggunakan banyak sumber
Apabila setiap permintaan baharu tiba di pelayan , ia akan dilaksanakan Dua operasi:
Dapatkan Token: Dapatkan bilangan token semasa untuk pengguna ini. Jika ia lebih besar daripada had yang ditetapkan, permintaan akan digugurkan.
boleh mengendalikan trafik pecah
: Algoritma baldi token boleh mengendalikan trafik pecah. Apabila baldi penuh, permintaan boleh diproses pada kelajuan maksimum. Ini berguna untuk aplikasi yang perlu mengendalikan lalu lintas pecah.
: Jika token dijana terlalu cepat, ia boleh menyebabkan sejumlah besar trafik pecah, yang mungkin membebankan rangkaian atau perkhidmatan.
Disebabkan kecacatan titik kritikal masa algoritma kaunter, ia terdedah kepada serangan dalam tempoh masa yang sangat singkat sekitar titik kritikal masa. Sebagai contoh, ia ditetapkan untuk meminta antara muka tertentu sehingga 100 kali seminit Contohnya, tiada permintaan data dalam tempoh masa 12:00:00-12:00:59, tetapi terdapat permintaan serentak secara tiba-tiba. tempoh masa 12:00:59-12:01:00 100 permintaan, dan kemudian memasuki kitaran pengiraan seterusnya, kaunter dikosongkan, dan terdapat 100 permintaan antara 12:01:00-12:01:01. Dalam erti kata lain, sekitar titik kritikal masa, mungkin terdapat dua kali lebih banyak permintaan daripada ambang pada masa yang sama, menyebabkan beban permintaan pemprosesan latar belakang, mengakibatkan keupayaan operasi sistem tidak mencukupi, malah menyebabkan sistem ranap.
Kelemahan:
Contohnya: had semasa ialah 3 sesaat, 3 permintaan dihantar dalam milisaat terakhir saat pertama dan 3 permintaan dihantar dalam milisaat pertama saat kedua. Enam permintaan telah diproses dalam dua milimeter ini, tetapi had semasa tidak dicetuskan. Jika terdapat sesak trafik, ia boleh mengatasi pelayan.
Algoritma tetingkap gelongsor membahagikan tempoh masa tetap dan menggerakkannya dengan masa titik masa dan mengulanginya secara berterusan boleh mengelakkan masalah titik kritikal kaunter.
Algoritma tetingkap gelongsor dengan berkesan boleh mengelakkan masalah titik kritikal masa dalam algoritma kaunter, tetapi masih terdapat konsep segmen masa. Pada masa yang sama, operasi mengira algoritma tetingkap gelongsor juga lebih memakan masa daripada algoritma tetingkap masa tetap.
Kelemahan: Masih ada masalah had semasa tidak cukup lancar. Contohnya: had semasa ialah 3 sesaat, dan 3 permintaan dihantar dalam milisaat pertama Jika had semasa dicapai, semua permintaan dalam masa tetingkap yang tinggal akan ditolak, mengakibatkan pengalaman yang buruk.
Memperkenalkan empat algoritma pengehad semasa yang biasa digunakan: algoritma tetingkap tetap, algoritma tetingkap gelongsor, algoritma baldi bocor dan algoritma baldi token. Setiap algoritma mempunyai ciri tersendiri dan senario yang boleh digunakan Mari kita ringkaskan dan bandingkannya di bawah.
Atas ialah kandungan terperinci Kuasai empat algoritma pengehad semasa yang biasa digunakan dan anda pasti akan lulus temu duga. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!