深入浅出的mysql第三版和第二版的区别_深入浅出mysql和高性能mysql哪本好
展開(kāi)全部
限流算法目前程序開(kāi)發(fā)過(guò)程常用的限流算法有兩個(gè):漏桶算32313133353236313431303231363533e78988e69d8331333433663032法和令牌桶算法。
漏桶算法
漏桶算法的原理比較簡(jiǎn)單,請(qǐng)求進(jìn)入到漏桶中,漏桶以一定的速率漏水。當(dāng)請(qǐng)求過(guò)多時(shí),水直接溢出。可以看出,漏桶算法可以強(qiáng)制限制數(shù)據(jù)的傳輸速度。如圖所示,把請(qǐng)求比作是水滴,水先滴到桶里,通過(guò)漏洞并以限定的速度出水,當(dāng)水來(lái)得過(guò)猛而出水不夠快時(shí)就會(huì)導(dǎo)致水直接溢出,即拒絕服務(wù)。
圖片來(lái)自網(wǎng)絡(luò)
漏桶的出水速度是恒定的,那么意味著如果瞬時(shí)大流量的話(huà),將有大部分請(qǐng)求被丟棄掉(也就是所謂的溢出)。
令牌桶算法
令牌桶算法的原理是系統(tǒng)以一定速率向桶中放入令牌,如果有請(qǐng)求時(shí),請(qǐng)求會(huì)從桶中取出令牌,如果能取到令牌,則可以繼續(xù)完成請(qǐng)求,否則等待或者拒絕服務(wù)。這種算法可以應(yīng)對(duì)突發(fā)程度的請(qǐng)求,因此比漏桶算法好。
圖片來(lái)自網(wǎng)絡(luò)
漏桶算法和令牌桶算法的選擇
兩者的主要區(qū)別漏桶算法能夠強(qiáng)行限制處理數(shù)據(jù)的速率,不論系統(tǒng)是否空閑。而令牌桶算法能夠在限制數(shù)據(jù)的平均處理速率的同時(shí)還允許某種程度的突發(fā)流量。如何理解上面的含義呢?漏桶算法,比如系統(tǒng)吞吐量是 120/s,業(yè)務(wù)請(qǐng)求 130/s,使用漏斗限流 100/s,起到限流的作用,多余的請(qǐng)求將產(chǎn)生等待或者丟棄。對(duì)于令牌桶算法,每秒產(chǎn)生 100 個(gè)令牌,系統(tǒng)容量 200 個(gè)令牌。正常情況下,業(yè)務(wù)請(qǐng)求 100/s 時(shí),請(qǐng)求能被正常被處理。當(dāng)有突發(fā)流量過(guò)來(lái)比如 200 個(gè)請(qǐng)求時(shí),因?yàn)橄到y(tǒng)容量有 200 個(gè)令牌可以同一時(shí)刻處理掉這 200 個(gè)請(qǐng)求。如果是漏桶算法,則只能處理 100 個(gè)請(qǐng)求,其他的請(qǐng)求等待或者被丟棄。
總結(jié)
以上是生活随笔為你收集整理的深入浅出的mysql第三版和第二版的区别_深入浅出mysql和高性能mysql哪本好的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: CAF(C++ actor framew
- 下一篇: linux cmake编译源码,linu