精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

面試官:限流的實現方式有哪些?

網絡 網絡管理
通常在網關層的上游,我們會使用 Nginx 一起來配合使用,也就是用戶請求會先到 Nginx(或 Nginx 集群),然后再將請求轉發(fā)給網關,網關再調用其他的微服務,從而實現整個流程的請求調用,因此 Nginx 限流也是分布式系統中常用的限流手段。

限流是指在各種應用場景中,通過技術和策略手段對數據流量、請求頻率或資源消耗進行有計劃的限制,以避免系統負載過高、性能下降甚至崩潰的情況發(fā)生。限流的目標在于維護系統的穩(wěn)定性和可用性,并確保服務質量。

使用限流的好處有以下幾個:

  1. 保護系統穩(wěn)定性:過多的并發(fā)請求可能導致服務器內存耗盡、CPU 使用率飽和,從而引發(fā)系統響應慢、無法正常服務的問題。
  2. 防止資源濫用:確保有限的服務資源被合理公平地分配給所有用戶,防止個別用戶或惡意程序過度消耗資源。
  3. 優(yōu)化用戶體驗:對于網站和應用程序而言,如果任由高并發(fā)導致響應速度變慢,會影響所有用戶的正常使用體驗。
  4. 保障安全:在網絡層面,限流有助于防范 DoS/DDoS 攻擊,降低系統遭受惡意攻擊的風險。
  5. 運維成本控制:合理的限流措施可以幫助企業(yè)減少不必要的硬件投入,節(jié)省運營成本。

在 Java 中,限流的實現方式有很多種,例如以下這些:

  1. 單機限流:使用 JUC 下的 Semaphore 限流,或一些常用的框架,例如 Google 的 Guava 框架進行限流,但這種限流方式都是基于 JVM 層面的內存級別的單臺機器限流。
  2. 網關層限流:單機限流往往不適用于分布式系統,而分布式系統可以在網關層限流,如 Spring Cloud Gateway 通過 Sentinel、Hystrix 對整個集群進行限流。
  3. Nginx 限流:通常在網關層的上游,我們會使用 Nginx 一起來配合使用,也就是用戶請求會先到 Nginx(或 Nginx 集群),然后再將請求轉發(fā)給網關,網關再調用其他的微服務,從而實現整個流程的請求調用,因此 Nginx 限流也是分布式系統中常用的限流手段。

它們限流的具體實現如下。

1.單機限流

JVM 層面多線程級別的限流可以使用 JUC 下的 Semaphore,具體使用示例如下:

import java.util.concurrent.Semaphore;
import java.util.concurrent.TimeUnit;

public class SemaphoreExample {

    private final Semaphore semaphore = new Semaphore(5); // 只允許5個線程同時訪問

    public void accessResource() {
        try {
            semaphore.acquire(); // 獲取許可,如果當前許可數不足,則會阻塞
            System.out.println(Thread.currentThread().getName() + "獲得了許可,正在訪問資源...");
            // 模擬訪問資源的時間消耗
            Thread.sleep(2000);
            System.out.println(Thread.currentThread().getName() + "訪問資源結束,釋放許可...");
        } catch (InterruptedException e) {
            Thread.currentThread().interrupt();
            e.printStackTrace();
        } finally {
            semaphore.release(); // 訪問結束后釋放許可
        }
    }

    public static void main(String[] args) {
        SemaphoreExample example = new SemaphoreExample();

        for (int i = 0; i < 10; i++) {
            new Thread(() -> example.accessResource()).start();
        }
    }
}

想要實現更平滑的單機限流,可以考慮 Google 提供的 Guava 框架,它的使用示例如下。

首先在 pom.xml 添加 guava 引用,配置如下:

<!-- https://mvnrepository.com/artifact/com.google.guava/guava -->
<dependency>
  <groupId>com.google.guava</groupId>
  <artifactId>guava</artifactId>
  <version>28.2-jre</version>
</dependency>

具體實現代碼如下:

import com.google.common.util.concurrent.RateLimiter;
import java.time.Instant;

/**
 * Guava 實現限流
 */
public class RateLimiterExample {
    public static void main(String[] args) {
        // 每秒產生 10 個令牌(每 100 ms 產生一個)
        RateLimiter rt = RateLimiter.create(10);
        for (int i = 0; i < 11; i++) {
            new Thread(() -> {
                // 獲取 1 個令牌,獲取到令牌就執(zhí)行,否則就阻塞等待
                rt.acquire();
                System.out.println("正常執(zhí)行方法,ts:" + Instant.now());
            }).start();
        }
    }
}

2.網關層限流

在 Spring Cloud Gateway 網關層限流,可以借助 Sentinel 等限流框架來實現,它的實現步驟如下。

首先,在 pom.xml 中添加 Gateway 和 Sentinel 相關依賴,如下所示:

<dependency>
  <groupId>com.alibaba.cloud</groupId>
  <artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
</dependency>
<dependency>
  <groupId>org.springframework.cloud</groupId>
  <artifactId>spring-cloud-starter-gateway</artifactId>
</dependency>
<dependency>
  <groupId>com.alibaba.cloud</groupId>
  <artifactId>spring-cloud-alibaba-sentinel-gateway</artifactId>
</dependency>

配置限流相關的規(guī)則,如下示例所示:

spring:
  application:
    name: gate-way-blog
  cloud:
    sentinel:
      transport:
        dashboard: localhost:18080
      scg: # 配置限流之后,響應內容
        fallback:
          # 兩種模式,一種是 response 返回文字提示信息,
          # 另一種是 redirect 重定向跳轉,不過配置 redirect 也要配置對應的跳轉的 uri
          mode: response
          # 響應的狀態(tài)
          response-status: 200
          # 響應體
          response-body: '{"code": -10,"message": "被熔斷或限流!"}'

最后在 Sentinel 控制臺配置網關的限流設置即可,當然也可以使用 Nacos 作為數據源,兩者選擇配置其中一個即可。

3.Nginx 限流

Nginx 提供了兩種限流手段:

  • 通過控制速率來實現限流。
  • 通過控制并發(fā)連接數來實現限流。

我們一個一個來看。

3.1 控制速率實現限流

我們需要使用 limit_req_zone 用來限制單位時間內的請求數,即速率限制,示例配置如下:

limit_req_zone $binary_remote_addr zone=mylimit:10m rate=2r/s;
server {
  location / {
    limit_req zone=mylimit;
  }
}

以上配置表示,限制每個 IP 訪問的速度為 2r/s,因為 Nginx 的限流統計是基于毫秒的,我們設置的速度是 2r/s,轉換一下就是 500ms 內單個 IP 只允許通過 1 個請求,從 501ms 開始才允許通過第 2 個請求。

我們使用單 IP 在 10ms 內發(fā)并發(fā)送了 6 個請求的執(zhí)行結果如下:

圖片圖片

從以上結果可以看出他的執(zhí)行符合我們的預期,只有 1 個執(zhí)行成功了,其他的 5 個被拒絕了(第 2 個在 501ms 才會被正常執(zhí)行)。

速率限制升級版

上面的速率控制雖然很精準但是應用于真實環(huán)境未免太苛刻了,真實情況下我們應該控制一個 IP 單位總時間內的總訪問次數,而不是像上面那么精確但毫秒,我們可以使用 burst 關鍵字開啟此設置,示例配置如下:

limit_req_zone $binary_remote_addr znotallow=mylimit:10m rate=2r/s;
server {
  location / {
    limit_req znotallow=mylimit burst=4;
  }
}

burst=4 表示每個 IP 最多允許4個突發(fā)請求,如果單個 IP 在 10ms 內發(fā)送 6 次請求的結果如下:

圖片圖片

從以上結果可以看出,有 1 個請求被立即處理了,4 個請求被放到 burst 隊列里排隊執(zhí)行了,另外 1 個請求被拒絕了。

3.2 控制并發(fā)數實現限流

利用 limit_conn_zone 和 limit_conn 兩個指令即可控制并發(fā)數,示例配置如下:

limit_conn_zone $binary_remote_addr znotallow=perip:10m;
limit_conn_zone $server_name znotallow=perserver:10m;
server {
  ...
  limit_conn perip 10;
  limit_conn perserver 100;
}

其中 limit_conn perip 10 表示限制單個 IP 同時最多能持有 10 個連接;limit_conn perserver 100 表示 server 同時能處理并發(fā)連接的總數為 100 個。

責任編輯:武曉燕 來源: Java中文社群
相關推薦

2023-02-20 08:08:48

限流算法計數器算法令牌桶算法

2024-04-19 00:00:00

計數器算法限流算法

2023-11-20 10:09:59

2024-03-12 14:36:44

微服務HTTPRPC

2021-07-01 07:51:45

React事件綁定

2024-12-25 15:44:15

2024-02-04 10:08:34

2021-07-05 11:06:11

組件React通信

2022-03-21 07:35:34

處理方式跨域

2025-03-26 01:25:00

MySQL優(yōu)化事務

2024-03-07 17:21:12

HotSpotJVMHot Code

2021-07-02 07:06:20

React組件方式

2021-08-11 08:53:23

Git命令面試

2021-05-10 08:01:12

BeanFactoryFactoryBean容器

2021-08-02 08:34:20

React性能優(yōu)化

2021-05-27 05:37:10

HTTP請求頭瀏覽器

2021-09-30 07:57:13

排序算法面試

2024-05-29 14:34:07

2024-02-01 08:08:53

Spring過濾器類型Gateway

2025-09-26 07:58:58

點贊
收藏

51CTO技術棧公眾號

欧美电影在线观看免费| 看黄网站在线观看| 99xxxx成人网| 亚洲精品一区av在线播放| 久久精品一区二| 成人精品一区二区三区免费| 精品一区二区三区视频| 九九精品在线观看| 99久久人妻无码中文字幕系列| 涩涩涩在线视频| 国产精品国产三级国产三级人妇 | 香蕉亚洲视频| 色偷偷偷亚洲综合网另类 | 91在线免费播放| 国产精品久久久久久av下载红粉 | 午夜精品久久久久久久久久久久久 | 我要看黄色一级片| 福利电影一区 | 91久久久久国产一区二区| 欧美日韩专区| 在线观看精品自拍私拍| 色哟哟网站在线观看| 欧洲一级精品| 亚洲第一狼人社区| 在线视频不卡国产| 蜜桃视频在线免费| 国产高清亚洲一区| 国产精品美女免费| 成人免费看片98欧美| 亚洲精品国产偷自在线观看| 亚洲欧美中文日韩v在线观看| 亚洲一级片免费观看| 国产亚洲一区二区手机在线观看 | 特色特色大片在线| 狠狠v欧美ⅴ日韩v亚洲v大胸| 国产精品一二一区| 国产欧美久久一区二区| 欧美精品韩国精品| 精品电影一区| 久久天天躁日日躁| 一级片黄色录像| 精品一区在线| 亚洲成成品网站| 亚洲AV无码久久精品国产一区| 欧美暴力调教| 色婷婷综合久久久中文一区二区 | 三级福利片在线观看| 国产精品视频免费看| 欧美日韩亚洲在线| 日韩午夜影院| 99国产精品久久久久久久久久久| 69堂成人精品视频免费| 国产精品久久久久精| 免费人成在线不卡| 国产精品成人v| 日韩手机在线视频| 久久精品卡一| 日本久久久久久| 日日摸天天添天天添破| 一本久道综合久久精品| 69**夜色精品国产69乱| 日韩精品视频免费播放| 黄色精品免费| 欧美极品美女电影一区| 久久精品性爱视频| 99re国产精品| 日本午夜精品理论片a级appf发布| 久久久久久久久影院| 亚洲另类自拍| 欧美亚洲另类制服自拍| 久久久精品视频网站| 欧美综合二区| 国产精品偷伦免费视频观看的| 五月婷婷激情五月| 美女诱惑一区二区| 91精品视频免费观看| av手机免费看| youjizz国产精品| 久久久久久99| 3d成人动漫在线| 亚洲免费av高清| 搞av.com| 吉吉日韩欧美| 欧美军同video69gay| 免费观看黄网站| 国产伦精品一区二区三区在线播放| 亚洲高清色综合| 国产毛片久久久久久久| 欧美gay男男猛男无套| 欧美成人激情视频免费观看| 日韩三级视频在线| 久久一区二区三区四区五区| 国产欧美欧洲在线观看| 丰满人妻一区二区三区免费视频| www.成人在线| 亚洲国产精品久久久久久女王| 国产在线激情| 午夜精品福利一区二区蜜股av| 男人操女人免费| 91成人app| 亚洲精品一线二线三线| 国产精品20p| 中文字幕av亚洲精品一部二部| 韩国福利视频一区| 中文字幕av网站| 国产成人精品亚洲日本在线桃色 | 日韩午夜电影网| 欧美黑人xxxx| 在线观看国产区| 东方欧美亚洲色图在线| 日韩免费毛片| 91美女精品| 欧美欧美午夜aⅴ在线观看| 日本50路肥熟bbw| 日韩精品久久| 国产91精品黑色丝袜高跟鞋| 国产精品久久影视| 久久精品亚洲乱码伦伦中文 | 欧美日韩在线播放三区| 亚洲欧美日韩偷拍| 天天综合国产| 国产精品白嫩初高中害羞小美女| 亚洲精品久久久久久久久久久久久久 | 你懂的一区二区| 国产精品久久久久久久久粉嫩av| 国产综合在线播放| 亚洲欧美在线另类| 国产精品igao| 久久99国产精品久久99大师| 久久久91精品国产| 波多野结衣爱爱| 91免费国产在线观看| 国产精品免费看久久久无码| 九七电影院97理论片久久tvb| 日韩精品久久久久久福利| 欧美日韩在线视频免费| 久草精品在线观看| 日韩福利影院| 婷婷午夜社区一区| 日韩成人在线视频观看| 国产一级二级三级| 国产精品一区一区三区| 免费看污污视频| 欧美一级在线| 丝袜亚洲另类欧美重口| 国产在线一级片| 国产日产亚洲精品系列| 国产又黄又大又粗视频| 欧美丝袜足交| 欧美一级大片在线观看| 熟妇高潮一区二区高潮| 亚洲第一搞黄网站| 在线天堂www在线国语对白| 欧美午夜不卡| 国产98在线|日韩| 日韩激情美女| 精品88久久久久88久久久| 国产精品99re| 99re这里只有精品首页| 久久久一本二本三本| 日韩高清电影免费| 欧美孕妇与黑人孕交| 欧美美女色图| 欧美亚洲愉拍一区二区| www中文在线| 国产在线精品免费| 成人一区二区av| 成人在线tv视频| 91av视频导航| 黄色av网站在线看| 欧美日本免费一区二区三区| 国产精品国产三级国产传播| 国内精品国产三级国产a久久 | 在线免费看a| 欧美电影一区二区| 一区二区视频免费看| 丰满白嫩尤物一区二区| 成人中文字幕在线播放| 怕怕欧美视频免费大全| 国产精品一区二区久久国产| 二区在线播放| 亚洲激情电影中文字幕| 无码日韩精品一区二区| 中文字幕一区免费在线观看 | 精品视频在线观看免费观看 | 色综合电影网| 精品国产三区在线| 91成人在线观看国产| 国产美女性感在线观看懂色av| 欧美色男人天堂| 青娱乐av在线| 久久久综合网站| 日韩av一卡二卡三卡| 亚洲国产激情| 亚洲精品日韩在线观看| 一区二区三区四区视频免费观看| 91精品国产乱码久久久久久蜜臀 | 色伦专区97中文字幕| www.xxx国产| 日韩欧亚中文在线| 日本在线一级片| www成人在线观看| 老司机久久精品| 国产精品嫩草99av在线| 最新精品视频| 久久不见久久见免费视频7| 成人在线视频网| 丝袜诱惑一区二区| 美日韩精品免费视频| 亚洲 欧美 激情 小说 另类| 欧美日韩视频第一区| 欧美精品亚洲精品日韩精品| 中文字幕一区二区三区不卡| 97香蕉碰碰人妻国产欧美| 精品一区二区三区欧美| 国产网站免费在线观看| 亚洲网色网站| 日韩久久在线| 日韩欧美国产大片| 超碰97在线人人| 黄页免费欧美| 日韩美女中文字幕| 国精产品一区一区三区mba下载| 中文字幕欧美日韩在线| 亚洲av成人无码久久精品老人| 91麻豆精品国产91久久久 | 亚洲www色| 中文字幕免费精品一区| 每日更新在线观看av| 337p日本欧洲亚洲大胆色噜噜| 国产三级第一页| 欧美日韩三级一区| 黄色大全在线观看| 色中色一区二区| 国产毛片aaa| 亚洲妇女屁股眼交7| 日本天堂中文字幕| 亚洲欧美综合色| 欧美性生交大片| 国产精品视频第一区| 免费看黄色av| 久久综合色播五月| 亚洲第一页av| 97久久超碰精品国产| 最新版天堂资源在线| 成人深夜在线观看| 在线观看欧美一区二区| 国产精品亚洲午夜一区二区三区| 日本一二区免费| 极品少妇一区二区| 在线免费观看av网| 激情欧美一区二区| 中文字幕第22页| 国产一区二区三区高清播放| 小早川怜子一区二区三区| 精品一区二区三区日韩| 伊人精品视频在线观看| 国产精品18久久久久久久网站| 亚洲精品第三页| 国产美女在线精品| 国产ts在线观看| 成年人网站91| 波多野结衣办公室33分钟| 久久这里只精品最新地址| 一区二区黄色片| 中文字幕 久热精品 视频在线 | 人妻无码中文字幕| 日韩精品免费电影| 高清av在线| 精品国产视频在线| 4438x成人网全国最大| 欧美精品videos另类日本| 美女网站在线看| 国产ts人妖一区二区三区 | 在线免费观看视频一区| 亚洲熟妇无码久久精品| 欧美一区二区三区思思人| 亚洲av无码一区二区三区性色| 亚洲电影在线看| 国产在线超碰| 不卡av电影院| 欧美少妇精品| 国产欧美一区二区三区在线看| 国产一区二区在线观| 国产久一道中文一区| 少妇精品久久久| 中文字幕久久一区| 一区福利视频| 精品久久久久久久无码| 国产精品一级片在线观看| 久久久久国产精品区片区无码| 国产欧美精品一区二区色综合 | 天天综合日日夜夜精品| 波多野结衣家庭主妇| 日韩一区二区在线看片| 日韩porn| 欧美精品日韩三级| 欧美性suv| av成人综合网| 男男gay无套免费视频欧美| 在线一区亚洲| 久久狠狠婷婷| 麻豆精品国产传媒| 久久久99久久| 国产一级淫片免费| 欧美吻胸吃奶大尺度电影| 亚洲av无码一区二区三区dv| 一区二区欧美日韩视频| 黑人极品ⅴideos精品欧美棵| 国产精品久久久久久久久久久久| 成人h动漫免费观看网站| 伊人情人网综合| 久久国产精品久久w女人spa| 手机在线播放av| 中文字幕一区av| 国产在线观看黄色| 亚洲第一视频网站| 黄色网页在线免费看| 国产成人综合久久| 日韩美女毛片| 欧美午夜小视频| 国产一区二区美女| 91香蕉视频污在线观看| 色综合天天综合色综合av| 乱精品一区字幕二区| 操91在线视频| 素人啪啪色综合| 欧美xxxx黑人又粗又长密月 | 日本女优爱爱视频| 99在线视频精品| 欧美日韩在线视频免费播放| 欧美日韩大陆一区二区| 成人在线观看黄色| 欧美在线视频一区| 欧美变态网站| 女人帮男人橹视频播放| 国产精品99久久久久| 国产美女久久久久久| 欧美日韩在线播放三区四区| 国产区高清在线| 国产aⅴ夜夜欢一区二区三区| 亚欧日韩另类中文欧美| 精品久久一二三| www.欧美亚洲| 日韩免费视频一区二区视频在线观看| 精品国产123| 麻豆免费在线| 久久大香伊蕉在人线观看热2| 99国产精品99久久久久久粉嫩| 国产麻豆剧传媒精品国产av| 亚洲成av人片| 偷拍精品一区二区三区| 9.1国产丝袜在线观看| 日韩极品少妇| 99精品视频在线看| 国产拍揄自揄精品视频麻豆| 久久国产香蕉视频| 色视频www在线播放国产成人| 四虎影视国产精品| 国产欧美综合一区| 国产99久久精品| 国产欧美日韩另类| 亚洲免费电影在线观看| 高清电影一区| 一区二区欧美日韩| 国产精品一卡二卡在线观看| 日产精品久久久久久久| 精品亚洲国产成av人片传媒| 欧美日韩精品免费观看视完整| 日韩一区免费观看| 久久99精品久久久久婷婷| 欧美又粗又大又长| 日韩av在线播放资源| 欧洲一区二区三区精品| 天天爽天天狠久久久| 国产综合色精品一区二区三区| 久久国产在线视频| 日韩国产高清视频在线| 日本精品在线中文字幕| 超碰免费在线公开| 北岛玲一区二区三区四区| 亚洲免费视频二区| 欧美片一区二区三区| 亚洲第一论坛sis| 天堂av8在线| 亚洲国产色一区| 黄色软件在线| 亚洲一区二区中文| 国产视频亚洲| 精品视频第一页| 亚洲黄色www| 亚洲电影二区| 国产黄色一级网站| 国产精品国产三级国产aⅴ入口 | 国产视频精品免费播放| 日本国产亚洲| 成熟丰满熟妇高潮xxxxx视频| 国产精品国产三级国产普通话三级 | 日韩在线一区二区三区| 日本aⅴ在线观看|