V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
The Go Programming Language
http://golang.org/
Go Playground
Go Projects
Revel Web Framework
roy2220
V2EX  ›  Go 编程语言

实现一个高效的滑动时间窗口计数器

  •  1
     
  •   roy2220 · 2023-01-27 11:03:24 +08:00 · 2177 次点击
    这是一个创建于 695 天前的主题,其中的信息可能已经有所发展或是发生改变。

    适合用于计算最近一段时间的样本均值

    典型应用场景:成功率限流、QPS 限流

    https://github.com/go-tk/stw

    10 条回复    2023-01-29 10:33:22 +08:00
    toomoy
        1
    toomoy  
       2023-01-27 13:24:14 +08:00
    集群做不到统一滑动吧?
    melkor
        2
    melkor  
       2023-01-27 13:25:40 +08:00 via iPhone
    @toomoy 当然是各自滑各自的
    1423
        3
    1423  
       2023-01-27 15:43:12 +08:00
    没有 benchmark 怎么能说高效呢
    GopherDaily
        4
    GopherDaily  
       2023-01-28 02:24:57 +08:00
    为什么有成熟稳定大规模落地的东西不直接用呢?

    退一步将,大多数时候看汽车轮子比造牛车轮子的收益大很多
    Nazz
        5
    Nazz  
       2023-01-28 08:50:29 +08:00
    普罗米修斯怎么样
    julyclyde
        6
    julyclyde  
       2023-01-28 09:47:11 +08:00
    @GopherDaily 评职称
    roy2220
        7
    roy2220  
    OP
       2023-01-28 16:51:22 +08:00 via iPhone
    @GopherDaily 关于滑动时间窗口计数器,我的实现思路非常"取巧",代码短少,翻了一下 github 还没找到和我思路类似的实现,可以把你认为成熟实现贴出来和大家分享
    ddd1
        8
    ddd1  
       2023-01-28 17:16:27 +08:00
    roy2220
        9
    roy2220  
    OP
       2023-01-28 19:07:49 +08:00
    @ddd1 已经看过了,你能说说 sentinel-golang 实现的滑动时间窗口有啥亮点吗?
    ddd1
        10
    ddd1  
       2023-01-29 10:33:22 +08:00
    @roy2220 没做过对比
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2715 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 508ms · UTC 00:34 · PVG 08:34 · LAX 16:34 · JFK 19:34
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.