俗話說得好,緩存,限流和降級(jí)是系統(tǒng)的三把利劍。剛好項(xiàng)目中每天早上導(dǎo)出數(shù)據(jù)時(shí)因調(diào)訂單接口頻率過高,訂單系統(tǒng)擔(dān)心會(huì)對(duì)用戶側(cè)的使用造成影響,讓我們對(duì)調(diào)用限速一下,所以就正好用上了。
創(chuàng)新互聯(lián)公司專注于企業(yè)全網(wǎng)營銷推廣、網(wǎng)站重做改版、永福網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、HTML5建站、商城建設(shè)、集團(tuán)公司官網(wǎng)建設(shè)、成都外貿(mào)網(wǎng)站建設(shè)、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計(jì)等建站業(yè)務(wù),價(jià)格優(yōu)惠性價(jià)比高,為永福等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。常用的限流算法有2種:漏桶算法和令牌桶算法。
漏桶算法
漏桶算法:請(qǐng)求先進(jìn)入“桶”中,然后桶以一定的速率處理請(qǐng)求。如果請(qǐng)求的速率過快會(huì)導(dǎo)致桶溢出。根據(jù)描述可以知道,漏桶算法會(huì)強(qiáng)制限制請(qǐng)求處理的速度。任你請(qǐng)求的再快還是再慢,我都是以這種速率來處理。
但是對(duì)于很多情況下,除了要求能夠限制平均處理速度外,還要求能允許一定程度的的突發(fā)情況。這樣的話,漏桶算法就不合適了,用令牌桶算法更合適。
令牌桶算法
令牌桶算法的原理是:系統(tǒng)以恒定的速率往桶里丟一定數(shù)量的令牌,請(qǐng)求只有拿到了令牌才能處理。當(dāng)桶里沒有令牌時(shí)便可拒絕服務(wù)。
Guava中的Ratelimiter便是實(shí)現(xiàn)的令牌桶算法,同時(shí)能支持一定程度的突發(fā)請(qǐng)求。
private static RateLimiter one=RateLimiter.create(2);//每秒2個(gè) private static RateLimiter two=RateLimiter.create(2);//每秒2個(gè) private RateLimitUtil(){}; public static void acquire(RateLimiter r,int num){ double time =r.acquire(num); System.out.println("wait time="+time); } public static void main(String[] args) throws InterruptedException { acquire(one,1); acquire(one,1); acquire(one,1); System.out.println("-----"); acquire(two,10); acquire(two,1); }
本文題目:RateLimiter源碼分析-創(chuàng)新互聯(lián)
當(dāng)前路徑:http://aaarwkj.com/article30/ccdhso.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供小程序開發(fā)、網(wǎng)站維護(hù)、移動(dòng)網(wǎng)站建設(shè)、ChatGPT、手機(jī)網(wǎng)站建設(shè)、關(guān)鍵詞優(yōu)化
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容