成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

聊聊常見的限流算法有哪些?

開發(fā) 前端
每個(gè)客戶端請求進(jìn)來的時(shí)候,必須要從令牌桶獲得一個(gè)令牌才能訪問,否則排隊(duì)等待。在流量低峰的時(shí)候,令牌桶會(huì)出現(xiàn)堆積,因此當(dāng)出現(xiàn)瞬時(shí)高峰的時(shí)候,有足夠多的令牌可以獲取,因此令牌桶能夠允許瞬時(shí)流量的處理。

前言

今天來分享一道比較好的面試題,“常見的限流算法有哪些?”對于這個(gè)問題,我們一起看看考察點(diǎn)和比較好的回答吧!

考察點(diǎn)

限流算法是一種用于限制流量請求的頻率或速率的算法,其目的是在高并發(fā)或大流量請求的情況下,保護(hù)系統(tǒng)服務(wù)的安全性和可用性。限流算法可以應(yīng)對熱點(diǎn)業(yè)務(wù)帶來的突發(fā)請求、調(diào)用方bug導(dǎo)致的突發(fā)請求以及惡意攻擊請求等情況。這個(gè)問題就是面試官想考察我們是不是平日里善于積累,仔細(xì)思考這方面的知識(shí)!

回答  

首先,限流算法是一種系統(tǒng)保護(hù)策略,主要是避免在流量高峰導(dǎo)致系統(tǒng)被壓垮,造成系統(tǒng)不可用的問題。常考的算法有以下幾種。

1. (如圖)計(jì)數(shù)器限流,一般用在單一維度的訪問頻率限制上,比如短信驗(yàn)證碼每隔60s 只能發(fā)送一次,或者接口調(diào)用次數(shù)等。它的實(shí)現(xiàn)方法很簡單,每調(diào)用一次就加 1,處理結(jié)束以后減一。

 計(jì)數(shù)器限流算法的實(shí)現(xiàn)原理是在一個(gè)時(shí)間窗口內(nèi),每調(diào)用一次就增加計(jì)數(shù)器,當(dāng)時(shí)間窗口到達(dá)設(shè)定的時(shí)間后,計(jì)數(shù)器歸零。如果在時(shí)間窗口內(nèi)再次調(diào)用,則計(jì)數(shù)器再次增加。這種算法的優(yōu)點(diǎn)是實(shí)現(xiàn)簡單,但是存在臨界問題。如果在一個(gè)時(shí)間窗口內(nèi)的最后一次調(diào)用正好在時(shí)間窗口結(jié)束的瞬間,那么這個(gè)請求會(huì)被拒絕,因?yàn)橛?jì)數(shù)器已經(jīng)歸零。為了解決這個(gè)問題,可以采用滑動(dòng)窗口限流算法。該算法將時(shí)間窗口劃分為多個(gè)小的時(shí)間段,每個(gè)時(shí)間段都有一個(gè)獨(dú)立的計(jì)數(shù)器。當(dāng)一個(gè)時(shí)間段結(jié)束時(shí),該時(shí)間段的計(jì)數(shù)器歸零,而其他時(shí)間段的計(jì)數(shù)器保持不變。這樣就可以避免在時(shí)間窗口結(jié)束的瞬間出現(xiàn)請求被拒絕的情況。

圖片圖片

2. (如圖)滑動(dòng)窗口限流,本質(zhì)上也是一種計(jì)數(shù)器,只是通過以時(shí)間為維度的可滑動(dòng)窗口設(shè)計(jì),來減少了臨界值帶來的并發(fā)超過閾值的問題。每次進(jìn)行數(shù)據(jù)統(tǒng)計(jì)的時(shí)候,只需要統(tǒng)計(jì)這個(gè)窗口內(nèi)每個(gè)時(shí)間刻度的訪問量就可以了。Spring Cloud里面的熔斷框架Hystrix ,以及Spring Cloud Alibaba里面的Sentinel都采用了滑動(dòng)窗口來做數(shù)據(jù)統(tǒng)計(jì)。

圖片圖片

3. (如圖)漏桶算法,它是一種恒定速率的限流算法,不管請求量是多少,服務(wù)端的處理效率是恒定的。基于 MQ 來實(shí)現(xiàn)的生產(chǎn)者消費(fèi)者模型,其實(shí)算是一種漏桶限流算法。

圖片圖片

4. (如圖)令牌桶算法,相對漏桶算法來說,它可以處理突發(fā)流量的問題。它的核心思想是,令牌桶以恒定速率去生成令牌保存到令牌桶里面,桶的大小是固定的,令牌桶滿了以后就不再生成令牌。每個(gè)客戶端請求進(jìn)來的時(shí)候,必須要從令牌桶獲得一個(gè)令牌才能訪問,否則排隊(duì)等待。在流量低峰的時(shí)候,令牌桶會(huì)出現(xiàn)堆積,因此當(dāng)出現(xiàn)瞬時(shí)高峰的時(shí)候,有足夠多的令牌可以獲取,因此令牌桶能夠允許瞬時(shí)流量的處理。網(wǎng)關(guān)層面的限流、或者接口調(diào)用的限流,都可以使用令牌桶算法,像 Google 的 Guava,和 Redisson 的限流,都用到了令牌桶算法在我看來,限流的本質(zhì)是實(shí)現(xiàn)系統(tǒng)保護(hù),最終選擇什么樣的算法,一方面取決于統(tǒng)計(jì)的精準(zhǔn)度,另一方面考慮限流維度和場景的需求。

以上就是我對于這個(gè)問題的理解。

責(zé)任編輯:武曉燕 來源: 程序員的故事
相關(guān)推薦

2024-06-05 10:07:00

限流微服務(wù)算法

2024-04-19 00:00:00

計(jì)數(shù)器算法限流算法

2023-02-20 08:08:48

限流算法計(jì)數(shù)器算法令牌桶算法

2024-12-09 07:10:00

限流系統(tǒng)

2021-09-30 07:57:13

排序算法面試

2022-06-27 14:53:18

監(jiān)督學(xué)習(xí)機(jī)器學(xué)習(xí)人工智能

2022-02-09 15:36:49

Redis主從模式哨兵模式

2022-05-09 07:35:48

動(dòng)態(tài)集群限流

2024-02-26 14:07:18

2023-02-03 16:16:34

物聯(lián)網(wǎng)

2022-03-09 09:39:22

Python函數(shù)模塊

2010-07-20 11:26:08

SQL Server阻

2024-01-23 16:54:38

2020-12-14 09:46:57

DDoS攻擊網(wǎng)絡(luò)攻擊網(wǎng)絡(luò)安全

2022-08-03 13:47:58

漏洞物聯(lián)網(wǎng)

2021-05-28 08:52:45

Hive分析函數(shù)

2021-09-08 08:55:45

Javascript 高階函數(shù)前端

2025-01-21 08:00:00

限流微服務(wù)算法

2010-05-05 13:56:09

Oracle常見問題

2022-08-02 14:30:54

物聯(lián)網(wǎng)安全智能穿戴
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 精品视频一区在线 | 在线观看a视频 | 亚洲精品成人免费 | 久久久精品影院 | 99re国产视频| 桃花av在线| 欧美人人 | 国产高清免费视频 | 精品入口麻豆88视频 | 一区二区三区四区电影视频在线观看 | 日日操夜夜操天天操 | 国产欧美在线视频 | 成人免费黄视频 | 亚洲综合在线视频 | 精品区| 欧美三级在线 | 国产成人在线视频 | 精品毛片在线观看 | 97av视频在线 | 在线一区二区三区 | 91天堂| re久久 | 久久久一区二区三区 | 精品欧美一区二区精品久久 | 国精产品一区二区三区 | 伊人二区 | 日韩一区欧美一区 | 国产精品视频导航 | 蜜桃免费一区二区三区 | 精品二区 | 国产欧美精品区一区二区三区 | 免费观看羞羞视频网站 | 日韩波多野结衣 | 亚洲午夜精品视频 | 色www精品视频在线观看 | av中文字幕在线观看 | 午夜一区二区三区在线观看 | 丁香综合| 污片在线观看 | 亚洲成人免费 | 中文字幕一区在线观看视频 |