• 乔克叔叔
    2022-04-28
    这个rate什么含义

    作者回复: 限流用英文说就是ratelimit rate本身有速率得意思

    
    1
  • 乔克叔叔
    2022-04-27
    漏桶算法好像消息队列的削峰

    作者回复: 嗯嗯 主要是漏桶中的队列和MQ是思想上比较接近的东西

    
    1
  • 那时刻
    2022-03-10
    我想漏桶算法,可以通过一个计数器来计算目前in flight的数据包数量,如果来了数据包则加一,数据包处理完减一,如果计数器超过limit,则限流返回。

    作者回复: 嗯嗯 这个和计数器法是类似的 我现在认为不用queue可能不太容易保证输出速度恒定

    
    1
  • 小智
    2022-04-05
    漏桶算法如何能实现目标限流一秒100qps?

    作者回复: 控制消费速率每秒100即可

    
    
  • peter
    2022-03-10
    请教老师两个问题: Q1:云产品例子中: A 是哪个公司的产品?阿里?或者仅仅是个示例? B 该产品是个消息队列吗? C 5000连接 / 最高 10,000TPS,连接数和TPS有数量关系吗? 此处好像是2倍关系。另外,连接数是指同时连接数吧。 Q2:漏桶消费线程怎么实现“稳定消费”?定时消费吗? 令牌桶的放令牌线程,也是“稳定放入令牌”,也是定时放入令牌吗?

    作者回复: A1: 产品是我司的emqx cloud; https://www.emqx.com/zh/cloud 是一个 mqtt 的 broker 是指同时连接数 和 TPS 没有直接联系哦 A2: 漏桶可以通过定时消费实现 令牌桶也可以通过定时生产实现;不过一般我们会选择直接计算的方式进行

    
    
  • Paul Shan
    2022-03-10
    漏桶算法也可以用一个计数器来维护当前的请求数目,新来一个请求,如果计数器到达上限就拒绝请求,如果没有到达上限,计数器自增后把请求交给具体的处理器,请求被处理完毕的时候计数器自减。

    作者回复: 我理解这和漏桶算法还是有一些不一样哦 漏桶算法强调输出的速度稳定;计数器并不能保证这一点 我现在认为可能不用queue很难保证漏桶消费的速度恒定;欢迎指正。

    
    
  • Mike
    2022-05-13
    老师,我想说一个用计数器实现漏桶的思路,不知道可不可行? 假设漏桶每秒处理1000个请求(1000rps) ,也就是1毫秒滴一滴,漏桶有个最大容量,计为capacity,如果新进来请求时发现漏桶已经满了,直接拒绝;如果新进来的请求是800号,也就是等待800ms就能执行(因为出水是匀速的,1ms出1滴,那排800,自然等待800ms就能执行了。伪代码如下 RateLimiter rateLimiter = new RateLimiter(1000); // 1000 permitted requests per seconds void submitTasks(Runnable task, Executor executor) { int sleepMs = rateLimiter.acquire(); if (sleepMs > 0) { Thread.sleep(sleepMs); executor.execute(task); } else { // acquire() 返回-1表示漏桶已满 throw new RequestNotPermittedException(); } } 请老师指教
    
    