偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

互聯(lián)網(wǎng)大廠面試:如何利用Redis實現(xiàn)全局接口限流

數(shù)據(jù)庫 Redis
利用Redis實現(xiàn)限流的方式基本能滿足我們大部分的業(yè)務需要,對于部分要求限流粒度更高更準的業(yè)務,可以引入sentinel來滿足業(yè)務需要。

前言

對于某些特殊的業(yè)務場景,比如搶單、秒殺等業(yè)務,會導致服務流量瞬間飆升,我們雖然可以通過部署集群的方式分散請求壓力,但是仍然可能造成很大的請求延遲。

這時,我們可以通過接口限流的方式來保證系統(tǒng)的穩(wěn)定運行。

實現(xiàn)邏輯

我們可以通過filter對所有的接口進行攔截,判斷這個接口在當前時間窗口內的請求次數(shù),如果超出我們設定的請求上限,就返回無效請求。

以限制每個接口最大為10個QPS為例,可以有兩種實現(xiàn)邏輯:

其一,將這10個請求進行拆分,相當于每100ms可以請求一次。

其二,每秒內最多請求10次,而不判斷其請求分布范圍。

兩種邏輯的實現(xiàn)也略有差異。

實現(xiàn)一

每秒請求一次。

實現(xiàn)二

每秒請求N次。

判斷每秒請求N次會比每秒一次稍微復雜一點,主要是需要判斷當前秒內已經(jīng)請求了多少次。

這里利用redis的increment和expire配合使用達到限流的目的。

以限制每秒5次為例:

總結

以上兩種利用redis實現(xiàn)限流的方式基本能滿足我們大部分的業(yè)務需要,對于部分要求限流粒度更高更準的業(yè)務,可以引入sentinel來滿足業(yè)務需要。

責任編輯:姜華 來源: 今日頭條
相關推薦

2021-12-16 10:32:04

APP會員互聯(lián)網(wǎng)大廠用戶

2022-01-05 16:45:22

互聯(lián)網(wǎng)裁員危機

2022-08-31 16:17:21

造芯互聯(lián)網(wǎng)公司大廠

2020-02-23 17:39:21

互聯(lián)網(wǎng)復工公司

2021-12-14 15:27:48

互聯(lián)網(wǎng)程序員裁員

2022-06-01 20:24:25

互聯(lián)網(wǎng)元宇宙大廠

2023-03-07 08:22:34

MySQL優(yōu)化器

2018-08-23 09:06:18

互聯(lián)網(wǎng)百度面試

2020-07-19 10:06:02

互聯(lián)網(wǎng)數(shù)據(jù)技術

2021-11-22 10:03:47

互聯(lián)網(wǎng)薪資技術

2023-05-02 22:38:46

JVMJVM調優(yōu)

2022-02-24 11:05:06

互聯(lián)網(wǎng)加班科技

2019-10-25 15:50:06

MySQL數(shù)據(jù)庫命令

2022-01-24 10:46:40

互聯(lián)網(wǎng)裁員

2021-06-28 08:57:29

快手騰訊員工

2019-12-09 16:09:00

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

2023-12-11 14:20:00

系統(tǒng)緩存本地緩存

2019-12-11 15:45:49

互聯(lián)網(wǎng)數(shù)據(jù)技術

2023-02-07 09:01:30

字符串類型MySQL

2018-12-17 08:14:49

互聯(lián)網(wǎng)Java Kafka
點贊
收藏

51CTO技術棧公眾號