开发者社区 > 云原生 > 中间件 > 正文

AHAS 排队等待是什么意思?

AHAS 排队等待是什么意思?

展开
收起
真的很搞笑 2023-03-07 21:18:57 366 0
2 条回答
写回答
取消 提交回答
  • 流控规则中的匀速排队模式会严格控制请求通过的间隔时间,也即是让请求以均匀的速度通过。它的中心思想是,以固定的间隔时间让请求通过。当请求到来的时候,如果当前请求距离上个通过的请求通过的时间间隔不小于预设值,则让当前请求通过;否则,计算当前请求的预期通过时间,如果该请求的预期通过时间小于规则预设的 timeout 时间 (最大排队时长),则该请求会等待直到预设时间到来通过(排队等待处理);若预期的通过时间超出最大排队时长,则直接拒接这个请求。

    规则配置示例:当阈值设为 10 QPS 的时候,则代表一秒匀速的通过 10 个请求,也就是每个请求平均间隔恒定为 1000 / 10 = 100 ms。注意排队等待模式不用于控制 QPS,匀速排队模式下 QPS 阈值配置不代表这一秒最多通过这么多,这里的阈值仅用于计算两个请求的时间间隔。 最大排队时长代表允许的最长排队时间,排队时超出这个时间的会直接拒绝。注意超时时间不要配置的太大,否则会让线程一直卡在那里。

    常见问题 为什么 QPS 没到阈值就被限流了? 匀速排队模式下 QPS 阈值配置不代表这一秒最多通过这么多,这里的阈值仅用于计算两个请求的时间间隔。比如当阈值设为 10 的时候,则代表一秒匀速的通过 10 个请求,也就是每个请求平均间隔恒定为 1000 / 10 = 100 ms。如果请求以一个尖刺的脉冲到达,比如同一时刻到达了 8 个请求,这一刻最多只能过一个请求,但排队等待最大时间仅 200ms,那意味着这 8 个请求排队时一定会有几个请求直接被拒绝(每个请求间隔 100ms,最大排队 200ms,超出直接拒绝)。 为什么请求量比较多的时候仍然不会触发排队超时? 这里要注意请求的并发,如果 请求并发量 小于 最大排队量,那就不会触发排队超时(可以理解为同个线程,第一个请求排队完成后第二个请求才会进入排队)。,此回答整理自钉群“AHAS用户沟通群”

    2023-03-08 09:59:53
    赞同 展开评论 打赏
  • AHAS流控降级的排队等待功能,可以把骤增的大量请求匀速分配,以固定的间隔时间让请求通过,起到“削峰填谷”的效果,从而避免流量骤增造成系统负载过高的情况。

    2023-03-07 21:27:11
    赞同 展开评论 打赏

为企业提供高效、稳定、易扩展的中间件产品。

相关产品

  • 应用高可用服务
  • 相关电子书

    更多
    筑牢高可用基石,AHAS 赋能溪鸟安全生产探索与实践 立即下载
    阿里云容器 AHAS Sentinel 网关流控揭秘 立即下载
    低代码开发师(初级)实战教程 立即下载