自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

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

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

前言

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

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

實現(xiàn)邏輯

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

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

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

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

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

實現(xiàn)一

每秒請求一次。

實現(xiàn)二

每秒請求N次。

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

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

以限制每秒5次為例:

總結(jié)

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

責(zé)任編輯:姜華 來源: 今日頭條
相關(guān)推薦

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)公司大廠

2021-12-14 15:27:48

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

2020-02-23 17:39:21

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

2022-06-01 20:24:25

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

2023-03-07 08:22:34

MySQL優(yōu)化器

2023-05-02 22:38:46

JVMJVM調(diào)優(yōu)

2022-02-24 11:05:06

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

2021-11-22 10:03:47

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

2018-08-23 09:06:18

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

2020-07-19 10:06:02

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

2022-01-24 10:46:40

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

2021-06-28 08:57:29

快手騰訊員工

2019-10-25 15:50:06

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

2023-12-11 14:20:00

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

2023-02-07 09:01:30

字符串類型MySQL

2018-12-17 08:14:49

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

2023-04-24 15:42:39

2019-12-11 15:45:49

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

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