• HappyHasson
    2022-02-20
    Q:令牌桶和漏桶在使用上有没有很明显的区别(除了上游流量的抖动可能会扩散到下游服务 )?我们业务每次在使用选择时都会犹豫比对很久,最后都选了令牌桶。

    作者回复: 它们两个设计上的区别,令牌桶是限制进入的速率,漏桶是限制出的速率。一般来说,如果下游服务没有非常严格的速率限制,选择令牌桶会更好,它在效率和抗抖动之间的横权更好一些

    共 2 条评论
    5
  • 宇智波鼬
    2022-03-29
    有个小建议:能否在每节课开始或结束时讲解下上节课的问题的参考答案

    作者回复: 非常好的建议👍 由于课程快更新完了,看看怎么来放出参考答案。

    
    3
  • 孙志强
    2022-04-21
    关于抗抖动能力,令牌桶和漏桶实现层面是如何防抖动的,比如60QPS,是把时间切分到Ms级别来处理吗

    作者回复: 抗抖动主要是依靠桶的缓存能力,稳定的 QPS 控制是用来做流量整形的,精确的控制是依赖更小的时间片和滑动窗口来统计。

    
    1
  • 不吃辣👾
    2022-04-03
    老师 前面讲的固定窗口和滑动窗口给人的感觉就是不如令牌桶和漏桶。难道固定窗口和滑动窗口就没有应用场景了吗?这两个窗口可以被两个桶替代?

    作者回复: 固定窗口和滑动窗口相比于令牌桶和漏桶实现要简单并且需要的缓存要少,在一些简单的场景,这就是非常大的优势,选型的原则是合适才好。

    
    1
  • 青鸟飞鱼
    2022-03-17
    老师,觉得检测cpu和内存情况,来实现限流阈值的根据,会不会更好呢?

    作者回复: cpu 和 内存是系统级别的参数,粒度是非常粗的,限流需要做到接口级别,不过 cpu 和内存是非常好的过载指标,在扩容中会使用。

    共 2 条评论
    1
  • peter
    2022-02-18
    Q1:令牌桶部分:“也就是当请求流量突增的时候,上游流量的抖动可能会扩散到下游服务” 有限流,怎么会扩散到下游?什么情况下会扩散到下游? Q2:单节点限流,是说服务端只有一个节点吗? 还是说服务端有多个节点但只在一个节点上进行限流? 从后面看,应该是说某一个服务只有一个实例,即该服务只有一个节点,对吗?

    作者回复: Q1:令牌桶的流程速率是不限制的,所以在桶中的令牌满后,突然来大量的请求,由于令牌足够,所以下游的请求量也会短暂突增。 Q2:“某一个服务只有一个实例,即该服务只有一个节点”是对的,单节点限流是种简化的情况,为后面的分布式限流的讨论做准备。

    共 2 条评论
    
  • Jxin
    2022-02-25
    1.限流限的是请求数,但哪怕是同接口的每个请求对资源的占用都是不相同的。在一个服务内多个接口的资源是共享的,所以限制单接口并无法阻止其他接口的请求占用导致的服务不可用。你根本没办法把服务的资源平分给每个接口的每个请求,所以限流的值准不了,仅能用来防止特殊时段特殊接口的激增场景导致的服务不可用。所以面向的是服务中可能有激争抢占大量资源的接口,与是否核心链路并没必要因果关系。核心链路上的限流,是在我们限掉了比如供应商拉单这些非核心链路的请求,让出全部资源后,还撑不住时追加的,比如下单。但不是所有核心链路都时常有这种激增场景,比如注册用户。 2.工作中都是eda 用mq,等于都是漏斗。
    共 1 条评论
    3