電子發(fā)燒友App

硬聲App

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
电子发烧友
开通电子发烧友VIP会员 尊享10大特权
海量资料免费下载
精品直播免费看
优质内容免费畅学
课程9折专享价
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>電子資料>YmRatelimit流量控制工具

YmRatelimit流量控制工具

2022-04-25 | zip | 0.01 MB | 次下載 | 免費

資料介紹

授權協(xié)議 未知
開發(fā)語言 Google Go
軟件類型 開源軟件

軟件簡介

ymratelimit 是一個使用 golang 編寫的高性能流量控制工具,實現(xiàn)了Leaky bucket和Token bucket兩個算法。?

目前現(xiàn)在已經(jīng)在生產(chǎn)系統(tǒng)大規(guī)模使用,部署在線上數(shù)百臺服務上,最大業(yè)務支撐 20wqps。目前線上已經(jīng)穩(wěn)定使用。

設計初衷

  1. ? 禁止使用鎖
  2. ? 每次請求盡量控制在一次cas操作
  3. ? 所有計數(shù)都轉化成int64的操作,盡量減少cpu額外計算浪費?
  4. ?精度精確,支持到納秒級別的流量控制

性能測試

我們測試使用之前使用的github.com/juju/ratelimit,下面為測試結果

?  ymratelimit git:(master) ? go test -bench=. -run=none
goos: darwin
goarch: amd64
pkg: github.com/maczam/ymratelimit
BenchmarkYmretelimit-4                  14109680                79.9 ns/op
BenchmarkParallelYmretelimit-4          44515245                28.5 ns/op
BenchmarkJujuRatelimit-4                10214019               111 ns/op
BenchmarkParallelJujuRatelimit-4         6336103               160 ns/op
PASS
ok      github.com/maczam/ymratelimit   4.978s

?  ymratelimit git:(master) ? go test -bench=. -benchmem -run=none
goos: darwin
goarch: amd64
pkg: github.com/maczam/ymratelimit
BenchmarkYmretelimit-4                  14484910                80.0 ns/op             0 B/op          0 allocs/op
BenchmarkParallelYmretelimit-4          42125070                27.6 ns/op             0 B/op          0 allocs/op
BenchmarkJujuRatelimit-4                10546452               111 ns/op               0 B/op          0 allocs/op
BenchmarkParallelJujuRatelimit-4         6592738               171 ns/op               0 B/op          0 allocs/op
PASS
ok      github.com/maczam/ymratelimit   5.034s

使用簡單

使用非常簡單,非常方便遷入到系統(tǒng)

	rl := ymretelimit.NewLeakyBucket(time.Second, 15) // per second
    rl.TakeAvailable()

    rl = ymretelimit.NewTokenBucket(time.Microsecond, 15) // per Microsecond
    rl.TakeAvailable()

?

?

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評論

请按住滑块,拖动到最右边
了解新功能

查看更多

广告

下載排行

本周

  1. 1第十一屆 藍橋杯 單片機設計與開發(fā)項目 省賽 程序設計試題及源碼
  2. 90.88KB   |  23次下載  |  3 積分
  3. 2輕松解碼串口通信
  4. 509.30 KB  |  3次下載  |  免費
  5. 3STM32F103C8T6開發(fā)板最小系統(tǒng)原理圖
  6. 0.78 MB   |  1次下載  |  免費
  7. 4LT8822SS共漏N溝道增強型場效應晶體管規(guī)格書
  8. 1.22 MB   |  1次下載  |  免費
  9. 5ACDC茂睿芯MK2687寬供電范圍高效率反激 PWM 控制器
  10. 2.28 MB  |  1次下載  |  免費
  11. 6LTS3002FJI N溝道增強型功率MOSFET規(guī)格書
  12. 1.30 MB   |  次下載  |  免費
  13. 7ESD保護器件ESD0504TL規(guī)格書
  14. 2.97 MB   |  次下載  |  免費
  15. 8ESD保護器件GBLCxxCI系列規(guī)格書
  16. 2.85 MB   |  次下載  |  免費

本月

  1. 1STM32開發(fā)板教程之STM32開發(fā)指南免費下載
  2. 24.88 MB   |  177次下載  |  3 積分
  3. 2EN60335-1安規(guī)標準 中文版本
  4. 1.86 MB   |  53次下載  |  1 積分
  5. 3DeepSeek從入門到精通
  6. 5.07 MB   |  38次下載  |  免費
  7. 4第十一屆 藍橋杯 單片機設計與開發(fā)項目 省賽 程序設計試題及源碼
  8. 90.88KB   |  23次下載  |  3 積分
  9. 5NR-E531TX-XN冰箱說明書
  10. 8.64 MB   |  19次下載  |  免費
  11. 6STM32單片機無人機設計
  12. 8.81 MB   |  10次下載  |  免費
  13. 7華為硬件工程師手冊目前最全版本
  14. 1.02 MB   |  8次下載  |  2 積分
  15. 8MAX9295電路圖
  16. 0.14 MB   |  6次下載  |  免費

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935126次下載  |  10 積分
  3. 2開源硬件-PMP21529.1-4 開關降壓/升壓雙向直流/直流轉換器 PCB layout 設計
  4. 1.48MB  |  420063次下載  |  10 積分
  5. 3Altium DXP2002下載入口
  6. 未知  |  233088次下載  |  10 積分
  7. 4電路仿真軟件multisim 10.0免費下載
  8. 340992  |  191377次下載  |  10 積分
  9. 5十天學會AVR單片機與C語言視頻教程 下載
  10. 158M  |  183336次下載  |  10 積分
  11. 6labview8.5下載
  12. 未知  |  81584次下載  |  10 積分
  13. 7Keil工具MDK-Arm免費下載
  14. 0.02 MB  |  73814次下載  |  10 積分
  15. 8LabVIEW 8.6下載
  16. 未知  |  65988次下載  |  10 積分