在某些情况下用户的访问流量是无法预估的,如果访问流量超过了系统的可承载范围,极有可能会导致系统的不可用,为避免该情况,在短视频开发时,需要做好高并发场景下的系统服务自我保护机制。
一、限流
1、被动限流
在短视频开发中我们可以通过定义阈值和规则、自适应限流策略等方式进行系统承载能力的衡量:
(1)定义阈值和规则:该方式需要根据人工经验定制,所以灵活性不高,而且对请求反馈的灵敏度和资源的利用率也不够。
(2)自适应策略:该方式是一种动态限流策略,可根据系统单签的运行情况,动态地进行限流阈值的调整,使用起来更灵活。
2、主动限流
由于短视频开发的绝大部分业务系统间存在着依赖关系,所以系统间的处理能力会互相受到影响,此时可将集群限流和单机限流配合起来使用,以达到主动限流的目的。
二、降级
降级是一种比较直接、暴力的自我保护机制,所谓的降级主要是指当短视频开发的整个业务处于高峰期或活动脉冲期时,通过牺牲一些非核心功能来保证核心功能的可用性。在短视频开发中常用的降级方案有:
1、页面降级:主要是指从用户操作页面进行操作,直接限制和阶段某功能的入口。
2、存储降级:主要是指利用缓存来降级频繁操作的存储。
3、度降级:对于短视频开发中的非核心信息的读请求禁用。
4、写降级:直接禁止相关写操作的服务请求。
三、熔断
熔断在短视频开发中可以直接解决级联故障和服务雪崩,是一种比较强效的自我保护机制。
在分布环境中,当下游服务发生异常后,上游服务中就会出现请求超时和调用延迟的情况,而积压的大量请求和调用会不断消耗系统资源,直到系统资源被耗尽发生服务雪崩。
针对该情况我们就可以采取熔断策略,直接停止对下游的调用,并不断检测下游接口是否恢复。
在短视频开发中高并发是一个老生常谈的问题,为应对该问题开发者们也研究出了诸多方案,建立系统服务的自我保护机制就是其一,只有灵活使用这些方案,才能保证系统的高可用,才能让用户获得稳定、持续的高质量服务。
声明:本文由云豹科技原创,转载请注明作者名及原文链接,否则视为侵权