![045337d8141a8d2147351400e2267d9c.png](https://img-blog.csdnimg.cn/img_convert/045337d8141a8d2147351400e2267d9c.png)
相信很多后端研发的同学有过类似的感觉:平时经常听到“服务雪崩”这个词,但总觉得是一知半解。今天我将从数学的视角来诠释“服务雪崩”。
“服务雪崩”,通常是指客户端的请求量超过了服务端处理的能力上限,最终导致服务不可用。
“雪崩”一词形象生动的描述了当请求量暴涨时,请求响应时间像“滚雪球”一样持续的变大,直到所有的客户端请求全部超时,服务端后续的任何响应都会被客户端所忽略,服务完全不可用,进而“雪崩”。
上面的描述依然很抽象,那该如何理解呢?我们先从服务端的处理能力入手,一般我们使用TPS或者QPS来衡量一个服务的处理能力,即吞吐量。
服务吞吐量 = 服务并发数 * (单位时间 / 平均响应时间),这里举一个简单的例子,比如你去银行某个营业厅办理业务,这个营业厅一共有5个柜台可以办理业务,平均每个人的办理时间为10分钟,那么这个营业厅一个小时的服务吞吐量 = 5 * (60 / 10) = 30。
相对的如果我们有一个后台服务,它有10个进程在并发处理请求,每个请求的平均响应时间为20ms,则这个服务每秒的吞吐量(QPS)= 10 * (1000ms / 20ms) = 500。
知道了服务吞吐量如何衡量,另一个重要的概念是响应时间。响应时间 = I