目录
百战程序员,全站22050+开发课程+文档 ,学习精选优质好课快人一步!观看视频 快捷键ALT+N

JAVA全系列 教程

3762个小节阅读:7088.2k

收藏
全部开发者教程

C语言快速入门

JAVA全系列 教程

面向对象的程序设计语言

Python全系列 教程

Python3.x版本,未来主流的版本

人工智能 教程

顺势而为,AI创新未来

大厂算法 教程

算法,程序员自我提升必经之路

C++ 教程

一门通用计算机编程语言

微服务 教程

目前业界流行的框架组合

web前端全系列 教程

通向WEB技术世界的钥匙

大数据全系列 教程

站在云端操控万千数据

AIGC全能工具班

A

A A

White Night

阅读(989)
赞(0)

分布式流量防护_流控效果之排队等待

image-20220325142656683

排队等待则是让所有请求进入一个队列中,然后按照阈值允许的时间间隔依次执行。后来的请求必须等待前面执行完成,如果请求预期的等待时间超出最大时长,则会被拒绝。

工作原理

例如:QPS阈值为5,意味着每200ms处理一个队列中的请求,超时时间2s,现在有100个请求过来,服务器最多处理 5 个,其他慢慢排队,timeout = 2S,意味着预期等待时长超过2S的请求会被拒绝并抛出异常。

image-20220325155048242

假如不使用排队等待模式,现在有12个请求过来,第1秒同时接收到10个请求,但第2秒只有1个请求,此时QPS的曲线这样的。 image-20210716113147176

如果使用队列模式做流控,所有进入的请求都要排队,以固定的200ms的间隔执行,QPS会变的很平滑。

image-20210716113426524

注意:

平滑的QPS曲线,对于服务器来说是更友好的。

应用场景

image

注意:

这种方式主要用于处理间隔性突发的流量,例如消息队列。想象一下这样的场景,在某一秒有大量的请求到来,而接下来的几秒则处于空闲状态,我们希望系统能够在接下来的空闲期间逐渐处理这些请求,而不是在第一秒直接拒绝多余的请求。

案例

需求:给/payment/queue这个资源设置限流,最大QPS为10,利用排队的流控效果,超时时长设置为5s。

image-20220325141609030

Jmeter测试

image-20220325141651440

QPS为15,已经超过了我们设定的10。如果是之前的快速失败、warmup模式,超出的请求应该会直接报错。但是我们看看队列模式的运行结果:

image-20220325141747937

实时效果反馈

1.Sentienl流控效果排队等待主要解决_____问题。

A 匀速流量

B 平稳大流量

C 突发流量

D 以上都是错误

答案

1=>C

北京市昌平区回龙观镇南店村综合商业楼2楼226室

©2014-2023 百战卓越(北京)科技有限公司 All Rights Reserved.

京ICP备14032124号-2