SpringBoot分布式限流元件零配置

2021-09-19 16:52:41 字數 1494 閱讀 3501

是一款專門為springboot專案設計的限流元件,利用redis+lua從而來實現高效能和分布式的能力。使用比較簡單。通過半嵌入式的開發即可使用分布式註解。引用使用redis作為註冊中心,所以需要新增redis依賴

springboot2版本之後官方強烈建議以此來替換spring-boot-starter-redis

>

>

org.springframework.bootgroupid

>

>

spring-boot-starter-data-redisartifactid

>

dependency

>

為了有更好的使用者體驗,控制台的開發已經提上日常。當前專案只有本人維護,歡迎前端或者後端的同學一起來參與

com.github.lxchinesszz

easy-sentinel

1.0.1-snapshot

只用將需要限制的介面加上@easysentinel即可實現限流能力

通過qps設定當前介面的qps,fallback指定限流後的備用方法 。

@restcontroller

public

class

webcontroller")

public string getuser

(@pathvariable

("name"

) string username)

public string mock

(string username)

}

前面只通過fallback實現備用方法的執行,但是平時為了讓控制層的**盡量保證精簡,easysentinel也支援通過工具類的方式來,指定blockhandlerclass處理類的方法blockhandler

redis lua分布式限流

註解反思 我們專案有好幾個介面,呼叫公司中颱的介面,包括定時器的分片執行還有本人的多執行緒強行壓榨,哈哈。最後加上使用者的瘋狂請求,導致中颱的介面偶爾出現問題,主要是資料庫cpu達到100 昨晚專門做了個限流,那麼技術定型使用什麼呢?ratelimiter?這好像是單機才能玩,sentinel?這個...

分布式限流實戰

由於api介面無法控制呼叫方的行為,因此當遇到瞬時請求量激增時,會導致介面占用過多伺服器資源,使得其他請求響應速度降低或是超時,更有甚者可能導致伺服器宕機。限流 rate limiting 指對應用服務的請求進行限制,例如某一介面的請求限制為100個每秒,對超過限制的請求則進行快速失敗或丟棄。限流可...

分布式限流演算法

一 限流的作用 有高併發的系統中,由於api介面無法控制呼叫發的行為,因此如果遇到瞬時請求數量遞增,就會導致介面占用過多的伺服器子u,導致響應速度降低或者超時,甚至可能英雌導致伺服器宕機,尤其是資料庫伺服器。所以就有限流的思想,限制客戶端對伺服器端端的請求限制,如果在單位時間內超過該請求限制,就會執...