最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Golang?throttled基于GCRA速率限制庫(kù)使用探索

 更新時(shí)間:2024年01月10日 14:20:40   作者:Eagle1949?技術(shù)源泉  
這篇文章主要為大家介紹了Golang?throttled基于GCRA速率限制庫(kù)使用實(shí)例探究,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

Throttled包

Throttled包實(shí)現(xiàn)了對(duì)HTTP端點(diǎn)等資源的速率限制訪問(wèn)。它使用通用信元速率算法(GCRA)來(lái)限制對(duì)資源(如HTTP端點(diǎn))的訪問(wèn),從而實(shí)現(xiàn)速率限制。

2.0.0版本對(duì)節(jié)流API進(jìn)行了一些重大更改。如果此更改破壞了您的代碼,或者您希望保留舊API的功能,請(qǐng)打開(kāi)一個(gè)問(wèn)題。我們不保證會(huì)有任何特定的更改,但希望了解更多關(guān)于用戶(hù)需求的信息。

安裝

import (
“github.com/throttled/sthrottled/v2”
)

然后,任何標(biāo)準(zhǔn)的Go工具,如構(gòu)建、測(cè)試,都會(huì)自動(dòng)找到包。您也可以使用go-get將其拉入您的項(xiàng)目中:

go get -u github.com/throttled/throttled/v2

如果你以前使用了throttled,現(xiàn)在推薦你升級(jí)到最新版本,并升級(jí)到含有context的新函數(shù)接口。

下面的函數(shù)可進(jìn)行替換:

memstore.New => memstore.NewCtx
goredisstore.New => goredisstore.NewCtx
redigostore.New => redigostore.NewCtx
throttled.NewGCRARateLimiter => throttled.NewGCRARateLimiterCtx
throttled.HTTPRateLimiter => throttled.HTTPRateLimiterCtx

請(qǐng)注意,并非所有store都使用了context.Context。

HTTPLimiter用于對(duì)http進(jìn)行速率限制訪問(wèn)的用法

此示例演示了HTTPLimiter用于對(duì)http進(jìn)行速率限制訪問(wèn)的用法。每分鐘每條路徑最多可處理20個(gè)請(qǐng)求,最多可處理5個(gè)附加請(qǐng)求:

package main
import (
 "fmt"
 "log"
 "net/http"
 "github.com/throttled/throttled/v2"
 "github.com/throttled/throttled/v2/store/memstore"
)
func myHandlerFunc(w http.ResponseWriter, r *http.Request) {
 fmt.Fprintf(w, "Hello, world")
}
func main() {
 store, err := memstore.NewCtx(65536)
 if err != nil {
  log.Fatal(err)
 }
 quota := throttled.RateQuota{
  MaxRate:  throttled.PerMin(20),
  MaxBurst: 5,
 }
 rateLimiter, err := throttled.NewGCRARateLimiterCtx(store, quota)
 if err != nil {
  log.Fatal(err)
 }
 httpRateLimiter := throttled.HTTPRateLimiterCtx{
  RateLimiter: rateLimiter,
  VaryBy:      &throttled.VaryBy{Path: true},
 }
 handler := http.HandlerFunc(myHandlerFunc)
 http.ListenAndServe(":8080", httpRateLimiter.RateLimit(handler))
}

我們經(jīng)常在使用第三方API時(shí),會(huì)看到這樣的提示,該接口頻率限制限額,請(qǐng)合理安排業(yè)務(wù)調(diào)用,特別是token的請(qǐng)求,經(jīng)常會(huì)要求你緩存到本地,如果我們的項(xiàng)目供他人使用,也有速率限制時(shí),可以集成這個(gè)庫(kù)方便的完成需求。

Github地址:

https://github.com/throttled/throttled 

以上就是Golang throttled基于GCRA速率限制庫(kù)使用探索的詳細(xì)內(nèi)容,更多關(guān)于Golang throttled GCRA速率限制的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Go并發(fā)與鎖的兩種方式該如何提效詳解

    Go并發(fā)與鎖的兩種方式該如何提效詳解

    如果沒(méi)有鎖,在我們的項(xiàng)目中,可能會(huì)存在多個(gè)goroutine同時(shí)操作一個(gè)資源(臨界區(qū)),這種情況會(huì)發(fā)生競(jìng)態(tài)問(wèn)題(數(shù)據(jù)競(jìng)態(tài)),下面這篇文章主要給大家介紹了關(guān)于Go并發(fā)與鎖的兩種方式該如何提效的相關(guān)資料,需要的朋友可以參考下
    2022-12-12
  • Go語(yǔ)言實(shí)現(xiàn)聊天小工具的示例代碼

    Go語(yǔ)言實(shí)現(xiàn)聊天小工具的示例代碼

    這篇文章主要為大家詳細(xì)介紹了如何利用Go語(yǔ)言實(shí)現(xiàn)聊天小工具,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-03-03
  • 十個(gè)Go map面試??紗?wèn)題合集

    十個(gè)Go map面試??紗?wèn)題合集

    go面試中,map相關(guān)知識(shí)點(diǎn)問(wèn)的比較多,這篇文章主要為大家整理歸納了10個(gè)??嫉膯?wèn)題,文中的示例代碼講解詳細(xì),希望對(duì)大家有一定的幫助
    2023-07-07
  • Golang?手寫(xiě)一個(gè)簡(jiǎn)單的并發(fā)任務(wù)?manager

    Golang?手寫(xiě)一個(gè)簡(jiǎn)單的并發(fā)任務(wù)?manager

    這篇文章主要介紹了Golang?手寫(xiě)一個(gè)簡(jiǎn)單的并發(fā)任務(wù)?manager,文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-08-08
  • 深入理解Golang中指針的用途與技巧

    深入理解Golang中指針的用途與技巧

    在 Go 語(yǔ)言中,指針是一種重要的概念,了解和正確使用指非常關(guān)鍵,因此本文小編就來(lái)和大家講講Golang 中指針的概念與用法,希望對(duì)大家有所幫助
    2023-05-05
  • Go語(yǔ)言中你所不知道的位操作用法

    Go語(yǔ)言中你所不知道的位操作用法

    位運(yùn)算可能在平常的編程中使用的并不多,但涉及到底層優(yōu)化,一些算法及源碼可能會(huì)經(jīng)常遇見(jiàn)。下面這篇文章主要給大家介紹了關(guān)于Go語(yǔ)言中你所不知道的位操作用法的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考下。
    2017-12-12
  • Go語(yǔ)言多值替換的HTML模板實(shí)例分析

    Go語(yǔ)言多值替換的HTML模板實(shí)例分析

    這篇文章主要介紹了Go語(yǔ)言多值替換的HTML模板,實(shí)例分析了Go語(yǔ)言多值替換與數(shù)組迭代的技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-02-02
  • Go語(yǔ)言中內(nèi)建函數(shù)make的使用

    Go語(yǔ)言中內(nèi)建函數(shù)make的使用

    在Go語(yǔ)言編程中,make函數(shù)是一個(gè)重要的內(nèi)建函數(shù),它用于創(chuàng)建和初始化切片、映射和通道,握 make 的使用方法,可以幫助我們更高效地管理內(nèi)存和數(shù)據(jù)結(jié)構(gòu)
    2024-09-09
  • Go語(yǔ)言使用Redis和Etcd實(shí)現(xiàn)高性能分布式鎖

    Go語(yǔ)言使用Redis和Etcd實(shí)現(xiàn)高性能分布式鎖

    這篇文章主要為大家介紹了Go語(yǔ)言使用Redis實(shí)現(xiàn)高性能分布式鎖示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-12-12
  • Golang與其他語(yǔ)言不同的九個(gè)特性

    Golang與其他語(yǔ)言不同的九個(gè)特性

    近來(lái)關(guān)于對(duì)Golang的討論有很多,七牛的幾個(gè)大牛們也斷定Go語(yǔ)言在未來(lái)將會(huì)快速發(fā)展,并且很可能會(huì)取代Java成為互聯(lián)網(wǎng)時(shí)代最受歡迎的編程語(yǔ)言。本文將帶你了解它不同于其他語(yǔ)言的九個(gè)特性
    2021-09-09

最新評(píng)論

临泽县| 栾川县| 两当县| 历史| 仁怀市| 宜都市| 沂南县| 定襄县| 横峰县| 西城区| 登封市| 玛纳斯县| 遂平县| 新化县| 浦县| 石河子市| 策勒县| 汤原县| 信丰县| 龙州县| 中江县| 福贡县| 米脂县| 田东县| 德安县| 池州市| 嘉定区| 玛多县| 仁怀市| 迁安市| 湖南省| 道孚县| 依安县| 平江县| 镇宁| 星子县| 安康市| 集安市| 祥云县| 西吉县| 宣恩县|