API rate limiting කියන්නේ server resources අධික ලෙස භාවිතා නොවෙන්න boundary එකක් දාන ක්රමයක්. ඒකට භාවිතා කරන ජනප්රිය algorithm එකක් තමයි Leaky Bucket Algorithm කියන්නේ.
සිංහලෙන් කිව්වොත්, සිදුරක් තියෙන බකට් එකක්. Bucket එකට එන ජලය API requests. Bucket එකේ කුඩා සිදුරකින් සීග්රයෙන් හෝ මන්දගාමීව leak වෙන requests තමයි process කරන්න ගන්නේ.
Bucket එකේ capacity එක fixed. Requests අධිකව එන විට bucket එක පිරෙනවා. පමණ ඉක්මවා ආවොත් පිටාර ගලනවා වගේ, අමතර requests reject වෙනවා. එතකොට ඔයාලට තේරෙනවා ඇති මේ algo එකේ parameters දෙකක් තියෙනවා. 01) බකට් සයිස් එක 02) ලීක් වෙන ප්රමාණය
Algorithm එකේ flow එක:
- Request එකක් ඇවිත් bucket එකට එකතු වෙනවා.
- Fixed leak rate එකක් අනුව requests system එකට pass වෙනවා.
- Bucket එක full නම්, අලුතෙන් ආපු request එක drop වෙනවා.
වාසි
- Implement කරන්න ලේසියි.
- Memory efficient.
- එක පාර ලොකු load එකක් ආවා කියලා server එක overwhelm වෙන්නෙ නෑ.
දුර්වලතා
- Leak rate එක overly strict නම්, genuine user requests reject වෙන්න පුළුවන්.
- හොඳටම පිරුණු වෙලාවට latency වැඩි වෙන්න ඉඩ තියෙනවා.
සරලව කියනවානම්, Leaky Bucket Algorithm එක API server එකට steady flow එකක් maintain කරන්න හොඳ, simple solution එකක්. ඒත් හැම use case එකකටම ඒක most optimal එකක් නෙවෙයි.
Leave a Reply