危害:一个模块的过载,会产生滚雪球效应,从而拖累其它系统,导致整个系统完全不可用。
原因:单点的不可用,会随着时间累积,最终导致该范围内都不可用。而如果关联的产品或服务没有做好过载保护,不可用会传导,导致全部不可用。
过载保护措施:
1、超时
2、防水隔离
3、保险丝
过载成因:
cpu,计算超时
内存,
load,cpu+网络+磁盘等。
io
紧急应对措施:
1、紧急扩容
2、紧急备机
3、限流
过载保护机制:
1、前端拒绝请求。越靠近用户的地方
2、后台根据负载拒绝请求。后台可以设置一定的拒绝策略,不能无限量地接收请求。比如通过队列长度,并发控制,超时等等来进行控制。
最核心的思想 还是两点:
1 无论是拒绝访问还是设置队列长度以及并发控制都是采取 掐源 策略。
2 而紧急扩容或者紧急备机都是提高响应能力。所谓魔高一尺道高一丈。
可供参考的过载保护措施:
1. nginx进行并发数控制。
2. nginx的sysguard模块进行过载保护。