日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當(dāng)前位置:首頁 > 科技  > 軟件

面試官:限流的常見算法有哪些?

來源: 責(zé)編: 時(shí)間:2024-04-19 09:22:06 225觀看
導(dǎo)讀限流的實(shí)現(xiàn)算法有很多,但常見的限流算法有三種:計(jì)數(shù)器算法、漏桶算法和令牌桶算法。1.計(jì)數(shù)器算法計(jì)數(shù)器算法是在一定的時(shí)間間隔里,記錄請(qǐng)求次數(shù),當(dāng)請(qǐng)求次數(shù)超過該時(shí)間限制時(shí),就把計(jì)數(shù)器清零,然后重新計(jì)算。當(dāng)請(qǐng)求次數(shù)超過間

8Hw28資訊網(wǎng)——每日最新資訊28at.com

限流的實(shí)現(xiàn)算法有很多,但常見的限流算法有三種:計(jì)數(shù)器算法、漏桶算法和令牌桶算法。8Hw28資訊網(wǎng)——每日最新資訊28at.com

1.計(jì)數(shù)器算法

計(jì)數(shù)器算法是在一定的時(shí)間間隔里,記錄請(qǐng)求次數(shù),當(dāng)請(qǐng)求次數(shù)超過該時(shí)間限制時(shí),就把計(jì)數(shù)器清零,然后重新計(jì)算。當(dāng)請(qǐng)求次數(shù)超過間隔內(nèi)的最大次數(shù)時(shí),拒絕訪問。8Hw28資訊網(wǎng)——每日最新資訊28at.com

計(jì)數(shù)器算法的實(shí)現(xiàn)比較簡(jiǎn)單,但存在“突刺現(xiàn)象”。8Hw28資訊網(wǎng)——每日最新資訊28at.com

突刺現(xiàn)象是指,比如限流 QPS(每秒查詢率)為 100,算法的實(shí)現(xiàn)思路就是從第一個(gè)請(qǐng)求進(jìn)來開始計(jì)時(shí),在接下來的 1 秒內(nèi),每來一個(gè)請(qǐng)求,就把計(jì)數(shù)加 1,如果累加的數(shù)字達(dá)到了 100,后續(xù)的請(qǐng)求就會(huì)被全部拒絕。等到 1 秒結(jié)束后,把計(jì)數(shù)恢復(fù)成 0,重新開始計(jì)數(shù)。如果在單位時(shí)間 1 秒內(nèi)的前 10 毫秒處理了 100 個(gè)請(qǐng)求,那么后面的 990 毫秒會(huì)請(qǐng)求拒絕所有的請(qǐng)求,我們把這種現(xiàn)象稱為“突刺現(xiàn)象”。8Hw28資訊網(wǎng)——每日最新資訊28at.com

計(jì)數(shù)器算法的簡(jiǎn)單實(shí)現(xiàn)代碼如下:8Hw28資訊網(wǎng)——每日最新資訊28at.com

import java.util.Calendar;import java.util.Date;import java.util.Random;public class CounterLimit {    // 記錄上次統(tǒng)計(jì)時(shí)間    static Date lastDate = new Date();    // 初始化值    static int counter = 0;    // 限流方法    static boolean countLimit() {        // 獲取當(dāng)前時(shí)間        Date now = new Date();        Calendar calendar = Calendar.getInstance();        calendar.setTime(now);        // 當(dāng)前分        int minute = calendar.get(Calendar.MINUTE);        calendar.setTime(lastDate);        int lastMinute = calendar.get(Calendar.MINUTE);        if (minute != lastMinute) {            lastDate = now;            counter = 0;        }        ++counter;        return counter >= 100; // 判斷計(jì)數(shù)器是否大于每分鐘限定的值。    }    // 測(cè)試方法    public static void main(String[] args) {        for (; ; ) {            // 模擬一秒            try {                Thread.sleep(1000);            } catch (InterruptedException e) {                e.printStackTrace();            }            Random random = new Random();            int i = random.nextInt(3);            // 模擬1秒內(nèi)請(qǐng)求1次            if (i == 1) {                if (countLimit()) {                    System.out.println("限流了" + counter);                } else {                    System.out.println("沒限流" + counter);                }            } else if (i == 2) { // 模擬1秒內(nèi)請(qǐng)求2次                for (int j = 0; j < 2; j++) {                    if (countLimit()) {                        System.out.println("限流了" + counter);                    } else {                        System.out.println("沒限流" + counter);                    }                }            } else { // 模擬1秒內(nèi)請(qǐng)求10次                for (int j = 0; j < 10; j++) {                    if (countLimit()) {                        System.out.println("限流了" + counter);                    } else {                        System.out.println("沒限流" + counter);                    }                }            }        }    }}

2.漏桶算法

漏桶算法的實(shí)現(xiàn)思路是,有一個(gè)固定容量的漏桶,水流(請(qǐng)求)可以按照任意速率先進(jìn)入到漏桶里,但漏桶總是以固定的速率勻速流出,當(dāng)流入量過大的時(shí)候(超過桶的容量),則多余水流(請(qǐng)求)直接溢出。如下圖所示:8Hw28資訊網(wǎng)——每日最新資訊28at.com

8Hw28資訊網(wǎng)——每日最新資訊28at.com

漏桶算法提供了一種機(jī)制,通過它可以讓突發(fā)流量被整形,以便為系統(tǒng)提供穩(wěn)定的請(qǐng)求,比如 Sentinel 中流量整形(勻速排隊(duì)功能)就是此算法實(shí)現(xiàn)的,如下圖所示:8Hw28資訊網(wǎng)——每日最新資訊28at.com

8Hw28資訊網(wǎng)——每日最新資訊28at.com

更多 Sentinel 內(nèi)容詳見:https://mp.weixin.qq.com/s/nF5f18BP8hscqIEmIFRN8Q8Hw28資訊網(wǎng)——每日最新資訊28at.com

3.令牌桶算法

令牌按固定的速率被放入令牌桶中,桶中最多存放 N 個(gè)令牌(Token),當(dāng)桶裝滿時(shí),新添加的令牌被丟棄或拒絕。當(dāng)請(qǐng)求到達(dá)時(shí),將從桶中刪除 1 個(gè)令牌。令牌桶中的令牌不僅可以被移除,還可以往里添加,所以為了保證接口隨時(shí)有數(shù)據(jù)通過,必須不停地往桶里加令牌。由此可見,往桶里加令牌的速度就決定了數(shù)據(jù)通過接口的速度。我們通過控制往令牌桶里加令牌的速度從而控制接口的流量。令牌桶的實(shí)現(xiàn)原理如下圖所示:8Hw28資訊網(wǎng)——每日最新資訊28at.com

8Hw28資訊網(wǎng)——每日最新資訊28at.com

4.漏桶算法 VS 令牌桶算法

漏桶算法是按照常量固定速率流出請(qǐng)求的,流入請(qǐng)求速率任意,當(dāng)流入的請(qǐng)求數(shù)累積到漏桶容量時(shí),新流入的請(qǐng)求被拒絕。令牌桶算法是按照固定速率往桶中添加令牌的,請(qǐng)求是否被處理需要看桶中的令牌是否足夠,當(dāng)令牌數(shù)減為零時(shí),拒絕新的請(qǐng)求。令牌桶算法允許突發(fā)請(qǐng)求,只要有令牌就可以處理,允許一定程度的突發(fā)流量。漏桶算法限制的是常量流出速率,從而使突發(fā)流入速率平滑。8Hw28資訊網(wǎng)——每日最新資訊28at.com

比如服務(wù)器空閑時(shí),理論上使用漏桶算法服務(wù)器可以直接處理一次洪峰(一次洪水過程的最大流量),但是漏桶算法處理請(qǐng)求的速率是恒定的,因此,前期服務(wù)器資源只能根據(jù)恒定的漏水速度逐步處理請(qǐng)求,無法直接處理這次洪峰。而使用令牌桶算法就不存在這個(gè)問題,因?yàn)樗梢韵劝蚜钆仆耙淮涡匝b滿,處理一次洪峰之后再走限流。8Hw28資訊網(wǎng)——每日最新資訊28at.com

總結(jié)

限流的常見算法有以下 3 種:8Hw28資訊網(wǎng)——每日最新資訊28at.com

  • 計(jì)數(shù)器算法:實(shí)現(xiàn)簡(jiǎn)單,但有突刺現(xiàn)象;
  • 漏桶算法:固定速率處理請(qǐng)求,處理任意流量更加平滑,可以實(shí)現(xiàn)流量整形;
  • 令牌桶算法:通過控制桶中的令牌實(shí)現(xiàn)限流,可以處理一定的突發(fā)流量,比如處理一次洪峰。

本文鏈接:http://m.www897cc.com/showinfo-26-83991-0.html面試官:限流的常見算法有哪些?

聲明:本網(wǎng)頁內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。郵件:2376512515@qq.com

上一篇: RabbitMQ實(shí)現(xiàn)延遲隊(duì)列的技術(shù)探討

下一篇: 詳解 C++ 實(shí)現(xiàn) K-means 算法

標(biāo)簽:
  • 熱門焦點(diǎn)
Top 日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不
欧美诱惑福利视频| 最新日韩欧美| 国产精品久久二区二区| 国产精品每日更新在线播放网址| 国产精品激情偷乱一区二区∴| 欧美激情一区二区| 欧美深夜影院| 国产一区二区三区四区hd| 136国产福利精品导航| 99视频+国产日韩欧美| 欧美一级电影久久| 亚洲黄色一区| 亚洲天堂成人在线观看| 久久激情视频| 欧美日韩1区2区3区| 国产精品伊人日日| 亚洲国产精品一区二区三区| 一本色道久久综合狠狠躁的推荐| 午夜激情久久久| 免播放器亚洲| 国产精品v片在线观看不卡 | 一区在线免费| 一区二区成人精品| 久久国产免费| 欧美日韩国产小视频在线观看| 国产日韩一区二区三区在线| 亚洲黄色视屏| 欧美一区在线看| 欧美日本国产| 合欧美一区二区三区| 99riav久久精品riav| 久久精品国产清自在天天线| 欧美日韩理论| 亚洲第一区中文99精品| 亚洲男同1069视频| 欧美激情1区2区3区| 国产日韩av高清| 一区二区日韩免费看| 久久青草久久| 国产精品夜色7777狼人| 亚洲精品在线观看视频| 久久精品五月婷婷| 国产精品高潮久久| 91久久中文字幕| 久久国产精品99久久久久久老狼| 欧美色大人视频| 91久久精品www人人做人人爽| 欧美在线视频日韩| 国产精品久久久久久久久久妞妞| 亚洲国产精品视频| 久久久久久久久岛国免费| 国产精品欧美久久| 一区二区三区视频在线观看| 欧美大片第1页| 一区二区三区在线观看欧美| 亚洲欧美影音先锋| 欧美三级网址| 亚洲精品在线免费| 欧美激情bt| 亚洲激情一区二区三区| 久久久久欧美精品| 国产午夜一区二区三区| 亚洲一区激情| 欧美视频二区36p| 在线视频精品一区| 欧美日韩成人在线观看| 亚洲经典自拍| avtt综合网| 久久亚洲一区二区三区四区| 国产婷婷一区二区| 性色av一区二区三区在线观看| 国产精品xxxav免费视频| 日韩亚洲国产欧美| 欧美日韩国内| 99国内精品久久| 欧美日韩日韩| 一区二区免费在线观看| 欧美日韩亚洲激情| 一区二区三区免费在线观看| 欧美日韩中文字幕| 亚洲私人黄色宅男| 国产精品美女久久久久久2018| 亚洲一区二区三区影院| 国产精品乱码久久久久久| 亚洲午夜91| 国产精品色婷婷| 欧美一区二区三区喷汁尤物| 国产美女精品免费电影| 亚洲欧美日韩综合| 国产欧美一区二区精品忘忧草| 欧美亚洲午夜视频在线观看| 国产午夜精品视频| 久久久五月天| 亚洲国产导航| 欧美激情精品久久久| 99pao成人国产永久免费视频| 欧美日韩激情网| 亚洲先锋成人| 国产日韩欧美成人| 久久免费99精品久久久久久| 亚洲国产mv| 欧美日韩高清在线播放| 亚洲视频在线观看免费| 国产精品亚洲综合久久| 性欧美暴力猛交另类hd| 国内精品久久久久久久影视麻豆| 久久偷看各类wc女厕嘘嘘偷窃| 亚洲国产成人在线| 欧美日韩国产综合网| 亚洲一区二区三区精品在线观看| 国产女人18毛片水18精品| 久久精品五月婷婷| 亚洲精品极品| 国产精品美女久久久浪潮软件| 欧美在线播放高清精品| 伊人精品久久久久7777| 欧美剧在线观看| 午夜精品视频一区| 在线成人性视频| 欧美日韩在线第一页| 欧美在线观看视频在线| 亚洲国产高清在线| 国产精品成人一区二区三区夜夜夜 | 亚洲第一在线| 免费试看一区| 国产日韩欧美亚洲一区| 欧美成人免费网| 亚洲中字黄色| 一区二区三区在线观看欧美| 欧美久久电影| 欧美中文字幕在线播放| 91久久精品久久国产性色也91| 国产精品成人aaaaa网站| 久久国产精品毛片| 日韩午夜在线播放| 国产亚洲精品一区二555| 欧美高清视频| 欧美一区二区视频在线观看| 亚洲人成人一区二区三区| 国产精品中文字幕欧美| 欧美大学生性色视频| 欧美亚洲网站| 亚洲最新合集| 激情偷拍久久| 国产精品久线观看视频| 牛牛国产精品| 午夜日韩在线观看| 亚洲免费高清| 精品69视频一区二区三区| 欧美午夜精品理论片a级按摩| 久久女同精品一区二区| 亚洲一区成人| 亚洲人体偷拍| 国产一区欧美日韩| 欧美系列精品| 欧美国产日韩二区| 久久人人97超碰国产公开结果| 亚洲五月婷婷| 亚洲精品综合精品自拍| 激情视频一区二区| 国产精品入口夜色视频大尺度| 欧美精品尤物在线| 久久综合久久综合这里只有精品| 亚洲专区一区| 在线视频日本亚洲性| 亚洲七七久久综合桃花剧情介绍| 狠狠色综合日日| 国产精品揄拍一区二区| 欧美日韩国产影片| 欧美成人国产一区二区| 久久久精品久久久久| 亚洲欧美色婷婷| 亚洲视频狠狠| 99精品黄色片免费大全| 亚洲国产高清高潮精品美女| 黄色在线一区| 国产亚洲视频在线观看| 国产精品久久影院| 欧美三区在线| 欧美日韩麻豆| 欧美黄网免费在线观看| 免费在线播放第一区高清av| 久久精品国产2020观看福利| 亚洲在线中文字幕| 亚洲丝袜av一区| 99这里只有精品| 亚洲精品黄色| 亚洲日本在线观看| 亚洲激情女人| 亚洲精品极品| 亚洲精品三级| 亚洲理论在线观看| 亚洲欧洲一区二区三区在线观看| 在线成人免费视频| 在线精品视频在线观看高清 | 在线播放中文一区| 国内精品亚洲| 国内精品国语自产拍在线观看| 国产亚洲欧美一区| 欧美成人综合| 欧美成人免费大片| 欧美成人免费在线| 欧美激情视频网站| 欧美日韩一区二区三|